Compare commits
4 Commits
fix-frontm
...
all-contri
Author | SHA1 | Date | |
---|---|---|---|
3af7b3f316 | |||
36336cc04b | |||
5a644f1092 | |||
cab9048e06 |
@ -1631,6 +1631,15 @@
|
||||
"contributions": [
|
||||
"translation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sims-keshri",
|
||||
"name": "Simran Keshri",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/62168475?v=4",
|
||||
"profile": "https://github.com/sims-keshri",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 4,
|
||||
|
@ -10,7 +10,7 @@
|
||||
[](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)
|
||||
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[](#contributors-)
|
||||
[](#contributors-)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
<br/>
|
||||
@ -343,6 +343,7 @@ This project is licensed under the terms of the MIT license.
|
||||
<td align="center"><a href="https://github.com/Conhan93"><img src="https://avatars.githubusercontent.com/u/71334757?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Conny Hansson</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Conhan93" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://muklasr.medium.com"><img src="https://avatars.githubusercontent.com/u/43443753?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Muklas Rahmanto</b></sub></a><br /><a href="#translation-muklasr" title="Translation">🌍</a></td>
|
||||
<td align="center"><a href="https://github.com/VxDxK"><img src="https://avatars.githubusercontent.com/u/38704817?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vadim</b></sub></a><br /><a href="#translation-VxDxK" title="Translation">🌍</a></td>
|
||||
<td align="center"><a href="https://github.com/sims-keshri"><img src="https://avatars.githubusercontent.com/u/62168475?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simran Keshri</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=sims-keshri" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@ -59,9 +59,12 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
public class App {
|
||||
|
||||
private static final String ROCKET_LAUNCH_LOG_PATTERN = "Space rocket <%s> launched successfully";
|
||||
|
||||
/**
|
||||
* Program entry point.
|
||||
*/
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// construct a new executor that will run async tasks
|
||||
var executor = new ThreadAsyncExecutor();
|
||||
@ -87,9 +90,9 @@ public class App {
|
||||
asyncResult5.await();
|
||||
|
||||
// log the results of the tasks, callbacks log immediately when complete
|
||||
log("Space rocket <" + result1 + "> launch complete");
|
||||
log("Space rocket <" + result2 + "> launch complete");
|
||||
log("Space rocket <" + result3 + "> launch complete");
|
||||
log(String.format(ROCKET_LAUNCH_LOG_PATTERN, result1));
|
||||
log(String.format(ROCKET_LAUNCH_LOG_PATTERN, result2));
|
||||
log(String.format(ROCKET_LAUNCH_LOG_PATTERN, result3));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -102,7 +105,7 @@ public class App {
|
||||
private static <T> Callable<T> lazyval(T value, long delayMillis) {
|
||||
return () -> {
|
||||
Thread.sleep(delayMillis);
|
||||
log("Space rocket <" + value + "> launched successfully");
|
||||
log(String.format(ROCKET_LAUNCH_LOG_PATTERN, value));
|
||||
return value;
|
||||
};
|
||||
}
|
||||
|
@ -42,6 +42,14 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
public class App {
|
||||
|
||||
private static final String LITERAL_0 = "LITERAL 0";
|
||||
private static final String HEALTH_PATTERN = "%s_HEALTH";
|
||||
private static final String GET_AGILITY = "GET_AGILITY";
|
||||
private static final String GET_WISDOM = "GET_WISDOM";
|
||||
private static final String ADD = "ADD";
|
||||
private static final String LITERAL_2 = "LITERAL 2";
|
||||
private static final String DIVIDE = "DIVIDE";
|
||||
|
||||
/**
|
||||
* Main app method.
|
||||
*
|
||||
@ -53,17 +61,17 @@ public class App {
|
||||
new Wizard(45, 7, 11, 0, 0),
|
||||
new Wizard(36, 18, 8, 0, 0));
|
||||
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("GET_HEALTH"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("GET_AGILITY"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("GET_WISDOM"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("ADD"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 2"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("DIVIDE"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("ADD"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode("SET_HEALTH"));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(LITERAL_0));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(LITERAL_0));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(String.format(HEALTH_PATTERN, "GET")));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(LITERAL_0));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(GET_AGILITY));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(LITERAL_0));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(GET_WISDOM));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(ADD));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(LITERAL_2));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(DIVIDE));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(ADD));
|
||||
vm.execute(InstructionConverterUtil.convertToByteCode(String.format(HEALTH_PATTERN, "SET")));
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ public final class DbManager {
|
||||
private static boolean useMongoDB;
|
||||
|
||||
private static Map<String, UserAccount> virtualDB;
|
||||
private static final String ERROR_MESSAGE_LOG = "Error connecting to MongoDB";
|
||||
|
||||
private DbManager() {
|
||||
}
|
||||
@ -85,7 +86,7 @@ public final class DbManager {
|
||||
try {
|
||||
connect();
|
||||
} catch (ParseException e) {
|
||||
LOGGER.error("Error connecting to MongoDB", e);
|
||||
LOGGER.error(ERROR_MESSAGE_LOG, e);
|
||||
}
|
||||
}
|
||||
var iterable = db
|
||||
@ -112,7 +113,7 @@ public final class DbManager {
|
||||
try {
|
||||
connect();
|
||||
} catch (ParseException e) {
|
||||
LOGGER.error("Error connecting to MongoDB", e);
|
||||
LOGGER.error(ERROR_MESSAGE_LOG, e);
|
||||
}
|
||||
}
|
||||
db.getCollection(CachingConstants.USER_ACCOUNT).insertOne(
|
||||
@ -134,7 +135,7 @@ public final class DbManager {
|
||||
try {
|
||||
connect();
|
||||
} catch (ParseException e) {
|
||||
LOGGER.error("Error connecting to MongoDB", e);
|
||||
LOGGER.error(ERROR_MESSAGE_LOG, e);
|
||||
}
|
||||
}
|
||||
db.getCollection(CachingConstants.USER_ACCOUNT).updateOne(
|
||||
@ -155,7 +156,7 @@ public final class DbManager {
|
||||
try {
|
||||
connect();
|
||||
} catch (ParseException e) {
|
||||
LOGGER.error("Error connecting to MongoDB", e);
|
||||
LOGGER.error(ERROR_MESSAGE_LOG, e);
|
||||
}
|
||||
}
|
||||
db.getCollection(CachingConstants.USER_ACCOUNT).updateOne(
|
||||
|
@ -3,7 +3,6 @@ layout: pattern
|
||||
title: Data Bus
|
||||
folder: data-bus
|
||||
permalink: /patterns/data-bus/
|
||||
|
||||
categories: Architectural
|
||||
language: en
|
||||
tags:
|
||||
|
@ -3,10 +3,8 @@ layout: pattern
|
||||
title: Filterer
|
||||
folder: filterer
|
||||
permalink: /patterns/filterer/
|
||||
description: Design pattern that helps container-like objects to return filtered version of themselves.# short meta description that shows in Google search results
|
||||
language: en
|
||||
categories:
|
||||
- Functional
|
||||
categories: Functional
|
||||
tags:
|
||||
- Extensibility
|
||||
---
|
||||
|
@ -3,6 +3,7 @@ layout: pattern
|
||||
title: Lockable Object
|
||||
folder: lockable-object
|
||||
permalink: /patterns/lockable-object/
|
||||
language: en
|
||||
categories: Concurrency
|
||||
tags:
|
||||
- Performance
|
||||
|
@ -8,6 +8,7 @@ language: en
|
||||
tags:
|
||||
- Decoupling
|
||||
---
|
||||
|
||||
## Also known as
|
||||
Application Model
|
||||
|
||||
|
@ -4,9 +4,11 @@ title: Table Module
|
||||
folder: table-module
|
||||
permalink: /patterns/table-module/
|
||||
categories: Structural
|
||||
language: en
|
||||
tags:
|
||||
- Data access
|
||||
---
|
||||
|
||||
## Intent
|
||||
Table Module organizes domain logic with one class per table in the database, and a single instance of a class contains the various procedures that will act on the data.
|
||||
|
||||
|
@ -3,7 +3,6 @@ layout: pattern
|
||||
title: Unit Of Work
|
||||
folder: unit-of-work
|
||||
permalink: /patterns/unit-of-work/
|
||||
|
||||
categories: Architectural
|
||||
language: en
|
||||
tags:
|
||||
|
@ -1,10 +1,8 @@
|
||||
---
|
||||
layout: pattern
|
||||
title: Version Number
|
||||
folder: versionnumber
|
||||
permalink: /patterns/versionnumber/
|
||||
description: Entity versioning with version number
|
||||
|
||||
folder: version-number
|
||||
permalink: /patterns/version-number/
|
||||
categories: Concurrency
|
||||
language: en
|
||||
tags:
|
||||
|
Reference in New Issue
Block a user