#1113 Add uml-reverse-mapper plugin
This commit is contained in:
		
							
								
								
									
										329
									
								
								commander/etc/commander.urm.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										329
									
								
								commander/etc/commander.urm.puml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,329 @@ | ||||
| @startuml | ||||
| package com.iluwatar.commander.queue { | ||||
|   class Queue<T> { | ||||
|     - front : Queue.Node<T> | ||||
|     - rear : Queue.Node<T> | ||||
|     - size : int | ||||
|     ~ Queue<T>() | ||||
|     ~ dequeue() : T | ||||
|     ~ enqueue(obj : T) | ||||
|     ~ isEmpty() : boolean | ||||
|     ~ peek() : T | ||||
|   } | ||||
|   ~class Node<V> { | ||||
|     ~ next : Queue.Node<V> | ||||
|     ~ value : V | ||||
|     ~ Node<V>(obj : V, b : Queue.Node<V>) | ||||
|   } | ||||
|   class QueueDatabase { | ||||
|     - data : Queue<QueueTask> | ||||
|     + exceptionsList : List<Exception> | ||||
|     + QueueDatabase(exc : Exception[]) | ||||
|     + add(t : QueueTask) : QueueTask | ||||
|     + dequeue() : QueueTask | ||||
|     + get(taskId : String) : QueueTask | ||||
|     + peek() : QueueTask | ||||
|   } | ||||
|   class QueueTask { | ||||
|     + firstAttemptTime : long | ||||
|     + messageType : int | ||||
|     + order : Order | ||||
|     + taskType : TaskType | ||||
|     + QueueTask(o : Order, t : TaskType, messageType : int) | ||||
|     + getType() : String | ||||
|   } | ||||
|   enum TaskType { | ||||
|     + EmployeeDb {static} | ||||
|     + Messaging {static} | ||||
|     + Payment {static} | ||||
|     + valueOf(name : String) : TaskType {static} | ||||
|     + values() : TaskType[] {static} | ||||
|   } | ||||
| } | ||||
| package com.iluwatar.commander.messagingservice { | ||||
|   class MessagingDatabase { | ||||
|     - data : Hashtable<String, MessageRequest> | ||||
|     + MessagingDatabase() | ||||
|     + add(r : MessageRequest) : MessageRequest | ||||
|     + get(requestId : String) : MessageRequest | ||||
|   } | ||||
|   class MessagingService { | ||||
|     - LOGGER : Logger {static} | ||||
|     + MessagingService(db : MessagingDatabase, exc : Exception[]) | ||||
|     + receiveRequest(parameters : Object[]) : String | ||||
|     ~ sendMessage(m : MessageToSend) : String | ||||
|     # updateDb(parameters : Object[]) : String | ||||
|   } | ||||
|   ~class MessageRequest { | ||||
|     ~ msg : MessageToSend | ||||
|     ~ reqId : String | ||||
|     ~ MessageRequest(this$0 : String, reqId : MessageToSend) | ||||
|   } | ||||
|   ~enum MessageToSend { | ||||
|     + PaymentFail {static} | ||||
|     + PaymentSuccessful {static} | ||||
|     + PaymentTrying {static} | ||||
|     + valueOf(name : String) : MessageToSend {static} | ||||
|     + values() : MessageToSend[] {static} | ||||
|   } | ||||
| } | ||||
| package com.iluwatar.commander { | ||||
|   class AppEmployeeDbFailCases { | ||||
|     - employeeTime : long | ||||
|     - messageTime : long | ||||
|     - numOfRetries : int | ||||
|     - paymentTime : long | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     + AppEmployeeDbFailCases() | ||||
|     ~ employeeDatabaseUnavailableCase() | ||||
|     ~ employeeDbSuccessCase() | ||||
|     + main(args : String[]) {static} | ||||
|   } | ||||
|   class AppMessagingFailCases { | ||||
|     - employeeTime : long | ||||
|     - messageTime : long | ||||
|     - numOfRetries : int | ||||
|     - paymentTime : long | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     + AppMessagingFailCases() | ||||
|     + main(args : String[]) {static} | ||||
|     ~ messagingDatabaseUnavailableCasePaymentError() | ||||
|     ~ messagingDatabaseUnavailableCasePaymentFailure() | ||||
|     ~ messagingDatabaseUnavailableCasePaymentSuccess() | ||||
|     ~ messagingSuccessCase() | ||||
|   } | ||||
|   class AppPaymentFailCases { | ||||
|     - employeeTime : long | ||||
|     - messageTime : long | ||||
|     - numOfRetries : int | ||||
|     - paymentTime : long | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     + AppPaymentFailCases() | ||||
|     + main(args : String[]) {static} | ||||
|     ~ paymentDatabaseUnavailableCase() | ||||
|     ~ paymentNotPossibleCase() | ||||
|     ~ paymentSuccessCase() | ||||
|   } | ||||
|   class AppQueueFailCases { | ||||
|     - employeeTime : long | ||||
|     - messageTime : long | ||||
|     - numOfRetries : int | ||||
|     - paymentTime : long | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     + AppQueueFailCases() | ||||
|     + main(args : String[]) {static} | ||||
|     ~ queueEmployeeDbTaskDatabaseUnavailableCase() | ||||
|     ~ queueMessageTaskDatabaseUnavailableCase() | ||||
|     ~ queuePaymentTaskDatabaseUnavailableCase() | ||||
|     ~ queueSuccessCase() | ||||
|   } | ||||
|   class AppShippingFailCases { | ||||
|     - employeeTime : long | ||||
|     - messageTime : long | ||||
|     - numOfRetries : int | ||||
|     - paymentTime : long | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     + AppShippingFailCases() | ||||
|     ~ itemUnavailableCase() | ||||
|     + main(args : String[]) {static} | ||||
|     ~ shippingDatabaseUnavailableCase() | ||||
|     ~ shippingNotPossibleCase() | ||||
|     ~ shippingSuccessCase() | ||||
|   } | ||||
|   class Commander { | ||||
|     - LOG : Logger {static} | ||||
|     - employeeDb : EmployeeHandle | ||||
|     - employeeTime : long | ||||
|     - finalSiteMsgShown : boolean | ||||
|     - messageTime : long | ||||
|     - messagingService : MessagingService | ||||
|     - numOfRetries : int | ||||
|     - paymentService : PaymentService | ||||
|     - paymentTime : long | ||||
|     - queue : QueueDatabase | ||||
|     - queueItems : int | ||||
|     - queueTaskTime : long | ||||
|     - queueTime : long | ||||
|     - retryDuration : long | ||||
|     - shippingService : ShippingService | ||||
|     ~ Commander(empDb : EmployeeHandle, paymentService : PaymentService, shippingService : ShippingService, messagingService : MessagingService, qdb : QueueDatabase, numOfRetries : int, retryDuration : long, queueTime : long, queueTaskTime : long, paymentTime : long, messageTime : long, employeeTime : long) | ||||
|     - doTasksInQueue() | ||||
|     - employeeHandleIssue(order : Order) | ||||
|     ~ placeOrder(order : Order) | ||||
|     - sendPaymentFailureMessage(order : Order) | ||||
|     - sendPaymentPossibleErrorMsg(order : Order) | ||||
|     - sendPaymentRequest(order : Order) | ||||
|     - sendShippingRequest(order : Order) | ||||
|     - sendSuccessMessage(order : Order) | ||||
|     - tryDequeue() | ||||
|     - tryDoingTasksInQueue() | ||||
|     - updateQueue(qt : QueueTask) | ||||
|   } | ||||
|   abstract class Database<T> { | ||||
|     + Database<T>() | ||||
|     + add(T) : T {abstract} | ||||
|     + get(String) : T {abstract} | ||||
|   } | ||||
|   class Order { | ||||
|     - ALL_CHARS : String {static} | ||||
|     - RANDOM : Random {static} | ||||
|     - USED_IDS : Hashtable<String, Boolean> {static} | ||||
|     ~ addedToEmployeeHandle : boolean | ||||
|     ~ createdTime : long | ||||
|     + id : String | ||||
|     ~ item : String | ||||
|     ~ messageSent : MessageSent | ||||
|     ~ paid : PaymentStatus | ||||
|     ~ price : float | ||||
|     ~ user : User | ||||
|     ~ Order(user : User, item : String, price : float) | ||||
|     - createUniqueId() : String | ||||
|   } | ||||
|   ~enum MessageSent { | ||||
|     + NoneSent {static} | ||||
|     + PaymentFail {static} | ||||
|     + PaymentSuccessful {static} | ||||
|     + PaymentTrying {static} | ||||
|     + valueOf(name : String) : MessageSent {static} | ||||
|     + values() : MessageSent[] {static} | ||||
|   } | ||||
|   ~enum PaymentStatus { | ||||
|     + Done {static} | ||||
|     + NotDone {static} | ||||
|     + Trying {static} | ||||
|     + valueOf(name : String) : PaymentStatus {static} | ||||
|     + values() : PaymentStatus[] {static} | ||||
|   } | ||||
|   class Retry<T> { | ||||
|     - RANDOM : Random {static} | ||||
|     - attempts : AtomicInteger | ||||
|     - errors : List<Exception> | ||||
|     - handleError : Retry.HandleErrorIssue<T> | ||||
|     - maxAttempts : int | ||||
|     - maxDelay : long | ||||
|     - op : Operation | ||||
|     - test : Predicate<Exception> | ||||
|     ~ Retry<T>(op : Operation, handleError : Retry.HandleErrorIssue<T>, maxAttempts : int, maxDelay : long, ignoreTests : Predicate<Exception>[]) | ||||
|     + perform(list : List<Exception>, obj : T) | ||||
|   } | ||||
|   interface HandleErrorIssue<T> { | ||||
|     + handleIssue(T, Exception) {abstract} | ||||
|   } | ||||
|   interface Operation { | ||||
|     + operation(List<Exception>) {abstract} | ||||
|   } | ||||
|   abstract class Service { | ||||
|     - ALL_CHARS : String {static} | ||||
|     - RANDOM : Random {static} | ||||
|     - USED_IDS : Hashtable<String, Boolean> {static} | ||||
|     # database : Database<T> | ||||
|     + exceptionsList : ArrayList<Exception> | ||||
|     # Service(db : Database<T>, exc : Exception[]) | ||||
|     # generateId() : String | ||||
|     + receiveRequest(Object[]) : String {abstract} | ||||
|     # updateDb(Object[]) : String {abstract} | ||||
|   } | ||||
|   class User { | ||||
|     ~ address : String | ||||
|     ~ name : String | ||||
|     ~ User(name : String, address : String) | ||||
|   } | ||||
| } | ||||
| package com.iluwatar.commander.shippingservice { | ||||
|   class ShippingDatabase { | ||||
|     - data : Hashtable<String, ShippingRequest> | ||||
|     + ShippingDatabase() | ||||
|     + add(r : ShippingRequest) : ShippingRequest | ||||
|     + get(trasnactionId : String) : ShippingRequest | ||||
|   } | ||||
|   class ShippingService { | ||||
|     + ShippingService(db : ShippingDatabase, exc : Exception[]) | ||||
|     + receiveRequest(parameters : Object[]) : String | ||||
|     # updateDb(parameters : Object[]) : String | ||||
|   } | ||||
|   ~class ShippingRequest { | ||||
|     ~ address : String | ||||
|     ~ item : String | ||||
|     ~ transactionId : String | ||||
|     ~ ShippingRequest(transactionId : String, item : String, address : String) | ||||
|   } | ||||
| } | ||||
| package com.iluwatar.commander.paymentservice { | ||||
|   class PaymentDatabase { | ||||
|     - data : Hashtable<String, PaymentRequest> | ||||
|     + PaymentDatabase() | ||||
|     + add(r : PaymentRequest) : PaymentRequest | ||||
|     + get(requestId : String) : PaymentRequest | ||||
|   } | ||||
|   class PaymentService { | ||||
|     + PaymentService(db : PaymentDatabase, exc : Exception[]) | ||||
|     + receiveRequest(parameters : Object[]) : String | ||||
|     # updateDb(parameters : Object[]) : String | ||||
|   } | ||||
|   ~class PaymentRequest { | ||||
|     ~ paid : boolean | ||||
|     ~ payment : float | ||||
|     ~ transactionId : String | ||||
|     ~ PaymentRequest(this$0 : String, transactionId : float) | ||||
|   } | ||||
| } | ||||
| package com.iluwatar.commander.employeehandle { | ||||
|   class EmployeeDatabase { | ||||
|     - data : Hashtable<String, Order> | ||||
|     + EmployeeDatabase() | ||||
|     + add(o : Order) : Order | ||||
|     + get(orderId : String) : Order | ||||
|   } | ||||
|   class EmployeeHandle { | ||||
|     + EmployeeHandle(db : EmployeeDatabase, exc : Exception[]) | ||||
|     + receiveRequest(parameters : Object[]) : String | ||||
|     # updateDb(parameters : Object[]) : String | ||||
|   } | ||||
| } | ||||
| Order -->  "-messageSent" MessageSent | ||||
| MessageSent ..+ Order | ||||
| MessageToSend ..+ MessagingService | ||||
| Retry -->  "-op" Operation | ||||
| Operation ..+ Retry | ||||
| Service -->  "-database" Database | ||||
| Node -->  "-next" Node | ||||
| PaymentRequest --+ PaymentService | ||||
| Commander -->  "-messagingService" MessagingService | ||||
| ShippingRequest ..+ ShippingService | ||||
| Commander -->  "-shippingService" ShippingService | ||||
| Commander -->  "-paymentService" PaymentService | ||||
| MessageRequest --+ MessagingService | ||||
| Commander -->  "-employeeDb" EmployeeHandle | ||||
| HandleErrorIssue ..+ Retry | ||||
| Retry -->  "-handleError" HandleErrorIssue | ||||
| QueueTask -->  "-taskType" TaskType | ||||
| TaskType ..+ QueueTask | ||||
| Order -->  "-user" User | ||||
| MessageRequest -->  "-msg" MessageToSend | ||||
| QueueTask -->  "-order" Order | ||||
| Commander -->  "-queue" QueueDatabase | ||||
| QueueDatabase -->  "-data" Queue | ||||
| Queue -->  "-front" Node | ||||
| Node ..+ Queue | ||||
| Order -->  "-paid" PaymentStatus | ||||
| PaymentStatus ..+ Order | ||||
| EmployeeDatabase --|> Database  | ||||
| EmployeeHandle --|> Service  | ||||
| MessagingDatabase --|> Database  | ||||
| MessagingService --|> Service  | ||||
| PaymentDatabase --|> Database  | ||||
| PaymentService --|> Service  | ||||
| QueueDatabase --|> Database  | ||||
| ShippingDatabase --|> Database  | ||||
| ShippingService --|> Service  | ||||
| @enduml | ||||
		Reference in New Issue
	
	Block a user