117 lines
3.5 KiB
Plaintext
117 lines
3.5 KiB
Plaintext
|
@startuml
|
||
|
class UsageDetailPublisherFunction [[java:com.iluwatar.producer.calldetails.functions]] {
|
||
|
-messageHandlerUtility: MessageHandlerUtility<UsageDetail>
|
||
|
-eventHandlerUtility: EventHandlerUtility<MessageHeader>
|
||
|
+run(): HttpResponseMessage
|
||
|
}
|
||
|
|
||
|
class UsageCostProcessorFunction [[java:com.iluwatar.consumer.callcostprocessor.functions]] {
|
||
|
-messageHandlerUtilityForUsageDetail: MessageHandlerUtility<UsageDetail>
|
||
|
-messageHandlerUtilityForUsageCostDetail: MessageHandlerUtility<UsageCostDetail>
|
||
|
+run(): HttpResponseMessage
|
||
|
}
|
||
|
|
||
|
class "MessageHandlerUtility<T>" as MessageHandlerUtility_T [[java:com.iluwatar.claimcheckpattern.utility]] {
|
||
|
+readFromPersistantStorage(messageReference: MessageReference, logger: Logger): Message
|
||
|
+dropToPersistantStorage(message: Message, logger: Logger): void
|
||
|
}
|
||
|
|
||
|
class "EventHandlerUtility<T>" as EventHandlerUtility_T [[java:com.callusage.utility.PersistentLocalStorageUtility]] {
|
||
|
+publishEvent(customEvent: T, logger: Logger): void
|
||
|
}
|
||
|
|
||
|
class "Message<T>" as Message_T [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-messageHeader: MessageHeader
|
||
|
-messageData: MessageData<T>
|
||
|
+Message(messageHeader: MessageHeader, messageData: MessageData<T>)
|
||
|
+getMessageData(): MessageData<T>
|
||
|
+getMessageHeader(): MessageHeader
|
||
|
}
|
||
|
|
||
|
|
||
|
class MessageHeader [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-id: String
|
||
|
-subject: String
|
||
|
-topic: String
|
||
|
-eventType: String
|
||
|
-eventTime: String
|
||
|
-data: Object
|
||
|
-dataVersion: String
|
||
|
+getId(): String
|
||
|
+setId(id: String): void
|
||
|
+getSubject(): String
|
||
|
+setSubject(subject: String): void
|
||
|
+getTopic(): String
|
||
|
+setTopic(topic: String): void
|
||
|
+getEventType(): String
|
||
|
+setEventType(eventType: String): void
|
||
|
+getEventTime(): String
|
||
|
+setEventTime(eventTime: String): void
|
||
|
+getData(): Object
|
||
|
+setData(data: Object): void
|
||
|
+getDataVersion(): String
|
||
|
+setDataVersion(dataVersion:String): void
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
class "MessageBody<T>" as MessageBody_T [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-data: List[] T
|
||
|
+getData(): List[] T
|
||
|
+setData(data:List[] T): void
|
||
|
}
|
||
|
|
||
|
class MessageReference [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-dataLocation: String
|
||
|
-dataFileName: String
|
||
|
+getDataLocation(): String
|
||
|
+setDataLocation(dataLocation:String): void
|
||
|
+getDataFileName(): String
|
||
|
+setDataFileName(dataFileName:String): void
|
||
|
}
|
||
|
|
||
|
class UsageDetail [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-userId: String
|
||
|
-duration: int
|
||
|
-data: int
|
||
|
+getUserId(): String
|
||
|
+setUserId(userId: String): void
|
||
|
+getDuration(): long
|
||
|
+setDuration(duration: long): void
|
||
|
+getData(): long
|
||
|
+setData(data: long): void
|
||
|
}
|
||
|
|
||
|
class UsageCostDetail [[java:com.iluwatar.claimcheckpattern.domain]] {
|
||
|
-userId: String
|
||
|
-callCost: double
|
||
|
-dataCost: double
|
||
|
+getUserId(): String
|
||
|
+setUserId(userId: String): void
|
||
|
+getCallCost(): double
|
||
|
+setCallCost(callCost:double): void
|
||
|
+getDataCost(): double
|
||
|
+setDataCost(dataCost:double) : void
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Message_T "1" *-- "1" MessageHeader : has
|
||
|
Message_T "1" *-- "1" MessageBody_T : has
|
||
|
MessageHeader "1" *-- "1" MessageReference : has as data object
|
||
|
MessageBody_T "1" *-- "1" UsageDetail: has
|
||
|
MessageBody_T "1" *-- "1" UsageCostDetail: has
|
||
|
|
||
|
EventHandlerUtility_T "1" *-- "1" MessageHeader: has
|
||
|
MessageHandlerUtility_T "1" *-- "1" Message_T: has
|
||
|
|
||
|
UsageDetailPublisherFunction "1" *-- "1" MessageHandlerUtility_T : has
|
||
|
UsageDetailPublisherFunction "1" *-- "1" EventHandlerUtility_T : has
|
||
|
|
||
|
UsageCostProcessorFunction "1" *-- "1" MessageHandlerUtility_T : has
|
||
|
UsageCostProcessorFunction "1" *-- "1" MessageHandlerUtility_T : has
|
||
|
@enduml
|