forked from iluwatar/java-design-patterns
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Work on iluwatar#190: Add first batch of automagically generated puml…
… files
- Loading branch information
NooBxGockeL
committed
Aug 30, 2016
1 parent
e73867f
commit 36fe249
Showing
86 changed files
with
4,700 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
@startuml | ||
package com.iluwatar.abstractdocument.domain { | ||
class Part { | ||
+ Part(properties : Map<String, Object>) | ||
} | ||
class Car { | ||
+ Car(properties : Map<String, Object>) | ||
} | ||
interface HasModel { | ||
+ PROPERTY : String {static} | ||
+ getModel() : Optional<String> | ||
} | ||
interface HasParts { | ||
+ PROPERTY : String {static} | ||
+ getParts() : Stream<Part> | ||
} | ||
interface HasType { | ||
+ PROPERTY : String {static} | ||
+ getType() : Optional<String> | ||
} | ||
interface HasPrice { | ||
+ PROPERTY : String {static} | ||
+ getPrice() : Optional<Number> | ||
} | ||
} | ||
package com.iluwatar.abstractdocument { | ||
interface Document { | ||
+ children(String, Function<Map<String, Object>, T>) : Stream<T> {abstract} | ||
+ get(String) : Object {abstract} | ||
+ put(String, Object) {abstract} | ||
} | ||
abstract class AbstractDocument { | ||
- properties : Map<String, Object> | ||
# AbstractDocument(properties : Map<String, Object>) | ||
+ children(key : String, constructor : Function<Map<String, Object>, T>) : Stream<T> | ||
+ get(key : String) : Object | ||
+ put(key : String, value : Object) | ||
+ toString() : String | ||
} | ||
class App { | ||
+ App() | ||
+ main(args : String[]) {static} | ||
} | ||
} | ||
AbstractDocument --+ Map | ||
Part ..|> HasType | ||
Part ..|> HasModel | ||
Part ..|> HasPrice | ||
Part --|> AbstractDocument | ||
Car ..|> HasModel | ||
Car ..|> HasPrice | ||
Car ..|> HasParts | ||
Car --|> AbstractDocument | ||
HasModel --|> Document | ||
HasParts --|> Document | ||
AbstractDocument ..|> Document | ||
HasType --|> Document | ||
HasPrice --|> Document | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
@startuml | ||
package com.iluwatar.abstractfactory { | ||
interface Castle { | ||
+ getDescription() : String {abstract} | ||
} | ||
class OrcKingdomFactory { | ||
+ OrcKingdomFactory() | ||
+ createArmy() : Army | ||
+ createCastle() : Castle | ||
+ createKing() : King | ||
} | ||
class ElfKing { | ||
~ DESCRIPTION : String {static} | ||
+ ElfKing() | ||
+ getDescription() : String | ||
} | ||
interface King { | ||
+ getDescription() : String {abstract} | ||
} | ||
class App { | ||
- army : Army | ||
- castle : Castle | ||
- king : King | ||
+ App() | ||
+ createKingdom(factory : KingdomFactory) | ||
+ getArmy() : Army | ||
~ getArmy(factory : KingdomFactory) : Army | ||
+ getCastle() : Castle | ||
~ getCastle(factory : KingdomFactory) : Castle | ||
+ getKing() : King | ||
~ getKing(factory : KingdomFactory) : King | ||
+ main(args : String[]) {static} | ||
- setArmy(army : Army) | ||
- setCastle(castle : Castle) | ||
- setKing(king : King) | ||
} | ||
class OrcKing { | ||
~ DESCRIPTION : String {static} | ||
+ OrcKing() | ||
+ getDescription() : String | ||
} | ||
class ElfKingdomFactory { | ||
+ ElfKingdomFactory() | ||
+ createArmy() : Army | ||
+ createCastle() : Castle | ||
+ createKing() : King | ||
} | ||
interface Army { | ||
+ getDescription() : String {abstract} | ||
} | ||
class OrcArmy { | ||
~ DESCRIPTION : String {static} | ||
+ OrcArmy() | ||
+ getDescription() : String | ||
} | ||
interface KingdomFactory { | ||
+ createArmy() : Army {abstract} | ||
+ createCastle() : Castle {abstract} | ||
+ createKing() : King {abstract} | ||
} | ||
class ElfArmy { | ||
~ DESCRIPTION : String {static} | ||
+ ElfArmy() | ||
+ getDescription() : String | ||
} | ||
class ElfCastle { | ||
~ DESCRIPTION : String {static} | ||
+ ElfCastle() | ||
+ getDescription() : String | ||
} | ||
class OrcCastle { | ||
~ DESCRIPTION : String {static} | ||
+ OrcCastle() | ||
+ getDescription() : String | ||
} | ||
} | ||
App --> "-castle" Castle | ||
App --> "-king" King | ||
App --> "-army" Army | ||
OrcKingdomFactory ..|> KingdomFactory | ||
ElfKing ..|> King | ||
OrcKing ..|> King | ||
ElfKingdomFactory ..|> KingdomFactory | ||
OrcArmy ..|> Army | ||
ElfArmy ..|> Army | ||
ElfCastle ..|> Castle | ||
OrcCastle ..|> Castle | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
@startuml | ||
package com.iluwatar.adapter { | ||
class App { | ||
+ App() | ||
+ main(args : String[]) {static} | ||
} | ||
interface BattleShip { | ||
+ fire() {abstract} | ||
+ move() {abstract} | ||
} | ||
class Captain { | ||
- battleship : BattleShip | ||
+ Captain() | ||
+ Captain(battleship : BattleShip) | ||
+ fire() | ||
+ move() | ||
+ setBattleship(battleship : BattleShip) | ||
} | ||
class BattleFishingBoat { | ||
- boat : FishingBoat | ||
+ BattleFishingBoat() | ||
+ fire() | ||
+ move() | ||
} | ||
class FishingBoat { | ||
+ FishingBoat() | ||
+ fish() | ||
+ sail() | ||
} | ||
} | ||
BattleFishingBoat --> "-boat" FishingBoat | ||
Captain --> "-battleship" BattleShip | ||
Captain ..|> BattleShip | ||
BattleFishingBoat ..|> BattleShip | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
@startuml | ||
package com.iluwatar.aggregator.microservices { | ||
class Aggregator { | ||
- informationClient : ProductInformationClient | ||
- inventoryClient : ProductInventoryClient | ||
+ Aggregator() | ||
+ getProduct() : Product | ||
} | ||
class ProductInformationClientImpl { | ||
+ ProductInformationClientImpl() | ||
+ getProductTitle() : String | ||
} | ||
interface ProductInformationClient { | ||
+ getProductTitle() : String {abstract} | ||
} | ||
class Product { | ||
- productInventories : int | ||
- title : String | ||
+ Product() | ||
+ getProductInventories() : int | ||
+ getTitle() : String | ||
+ setProductInventories(productInventories : int) | ||
+ setTitle(title : String) | ||
} | ||
class ProductInventoryClientImpl { | ||
+ ProductInventoryClientImpl() | ||
+ getProductInventories() : int | ||
} | ||
class App { | ||
+ App() | ||
+ main(args : String[]) {static} | ||
} | ||
interface ProductInventoryClient { | ||
+ getProductInventories() : int {abstract} | ||
} | ||
} | ||
Aggregator --> "-inventoryClient" ProductInventoryClient | ||
Aggregator --> "-informationClient" ProductInformationClient | ||
ProductInformationClientImpl ..|> ProductInformationClient | ||
ProductInventoryClientImpl ..|> ProductInventoryClient | ||
@enduml |
12 changes: 12 additions & 0 deletions
12
aggregator-microservices/etc/information-microservice.urm.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@startuml | ||
package com.iluwatar.information.microservice { | ||
class InformationApplication { | ||
+ InformationApplication() | ||
+ main(args : String[]) {static} | ||
} | ||
class InformationController { | ||
+ InformationController() | ||
+ getProductTitle() : String | ||
} | ||
} | ||
@enduml |
12 changes: 12 additions & 0 deletions
12
aggregator-microservices/etc/inventory-microservice.urm.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@startuml | ||
package com.iluwatar.inventory.microservice { | ||
class InventoryApplication { | ||
+ InventoryApplication() | ||
+ main(args : String[]) {static} | ||
} | ||
class InventoryController { | ||
+ InventoryController() | ||
+ getProductInventories() : int | ||
} | ||
} | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
@startuml | ||
package com.iluwatar.api.gateway { | ||
interface ImageClient { | ||
+ getImagePath() : String {abstract} | ||
} | ||
class MobileProduct { | ||
- price : String | ||
+ MobileProduct() | ||
+ getPrice() : String | ||
+ setPrice(price : String) | ||
} | ||
class ApiGateway { | ||
- imageClient : ImageClient | ||
- priceClient : PriceClient | ||
+ ApiGateway() | ||
+ getProductDesktop() : DesktopProduct | ||
+ getProductMobile() : MobileProduct | ||
} | ||
class DesktopProduct { | ||
- imagePath : String | ||
- price : String | ||
+ DesktopProduct() | ||
+ getImagePath() : String | ||
+ getPrice() : String | ||
+ setImagePath(imagePath : String) | ||
+ setPrice(price : String) | ||
} | ||
interface PriceClient { | ||
+ getPrice() : String {abstract} | ||
} | ||
class PriceClientImpl { | ||
+ PriceClientImpl() | ||
+ getPrice() : String | ||
} | ||
class ImageClientImpl { | ||
+ ImageClientImpl() | ||
+ getImagePath() : String | ||
} | ||
class App { | ||
+ App() | ||
+ main(args : String[]) {static} | ||
} | ||
} | ||
ApiGateway --> "-imageClient" ImageClient | ||
ApiGateway --> "-priceClient" PriceClient | ||
PriceClientImpl ..|> PriceClient | ||
ImageClientImpl ..|> ImageClient | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@startuml | ||
package com.iluwatar.image.microservice { | ||
class ImageApplication { | ||
+ ImageApplication() | ||
+ main(args : String[]) {static} | ||
} | ||
class ImageController { | ||
+ ImageController() | ||
+ getImagePath() : String | ||
} | ||
} | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@startuml | ||
package com.iluwatar.price.microservice { | ||
class PriceApplication { | ||
+ PriceApplication() | ||
+ main(args : String[]) {static} | ||
} | ||
class PriceController { | ||
+ PriceController() | ||
+ getPrice() : String | ||
} | ||
} | ||
@enduml |
50 changes: 50 additions & 0 deletions
50
async-method-invocation/etc/async-method-invocation.urm.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
@startuml | ||
package com.iluwatar.async.method.invocation { | ||
interface AsyncCallback<T> { | ||
+ onComplete(T, Optional<Exception>) {abstract} | ||
} | ||
interface AsyncResult<T> { | ||
+ await() {abstract} | ||
+ getValue() : T {abstract} | ||
+ isCompleted() : boolean {abstract} | ||
} | ||
class ThreadAsyncExecutor { | ||
- idx : AtomicInteger | ||
+ ThreadAsyncExecutor() | ||
+ endProcess(asyncResult : AsyncResult<T>) : T | ||
+ startProcess(task : Callable<T>) : AsyncResult<T> | ||
+ startProcess(task : Callable<T>, callback : AsyncCallback<T>) : AsyncResult<T> | ||
} | ||
class App { | ||
+ App() | ||
- callback(name : String) : AsyncCallback<T> {static} | ||
- lazyval(value : T, delayMillis : long) : Callable<T> {static} | ||
- log(msg : String) {static} | ||
+ main(args : String[]) {static} | ||
} | ||
-class CompletableResult<T> { | ||
~ COMPLETED : int {static} | ||
~ FAILED : int {static} | ||
~ RUNNING : int {static} | ||
~ callback : Optional<AsyncCallback<T>> | ||
~ exception : Exception | ||
~ lock : Object | ||
~ state : int | ||
~ value : T | ||
~ CompletableResult<T>(callback : AsyncCallback<T>) | ||
+ await() | ||
+ getValue() : T | ||
+ isCompleted() : boolean | ||
~ setException(exception : Exception) | ||
~ setValue(value : T) | ||
} | ||
interface AsyncExecutor { | ||
+ endProcess(AsyncResult<T>) : T {abstract} | ||
+ startProcess(Callable<T>) : AsyncResult<T> {abstract} | ||
+ startProcess(Callable<T>, AsyncCallback<T>) : AsyncResult<T> {abstract} | ||
} | ||
} | ||
CompletableResult ..+ ThreadAsyncExecutor | ||
ThreadAsyncExecutor ..|> AsyncExecutor | ||
CompletableResult ..|> AsyncResult | ||
@enduml |
Oops, something went wrong.