Entity Diagram
classDiagram
class Campaign {
-String name
-CampaignExecutionType executionType
-boolean active
-AutomaticCampaignStatus automaticCampaignStatus
-Expression expression
}
class CampaignExecution {
-CampaignExecutionStatus status
-Set~Client~ clients
}
class CampaignExecutionChecker {
<<interface>>
+isAvailable(execution)
+perform(execution)
}
class NotifyFailedCampaignExecutionChecker {
+isAvailable(execution): status == EXCEPTION_OCCURRED
+perform(execution): notify failure event
}
class CreateAppCampaignExecutionChecker {
+isAvailable(execution): status == FINISHED
+perform(execution): create applications & void old ones
}
class CampaignExecutionType {
<<enumeration>>
MANUAL
AUTOMATIC
}
class CampaignExecutionStatus {
<<enumeration>>
NEW
IN_PROGRESS
FINISHED
EXCEPTION_OCCURRED
}
class AutomaticCampaignStatus {
<<enumeration>>
SCHEDULED
IDLE
}
Campaign "1" -- "*" CampaignExecution : has
Campaign -- CampaignExecutionType : type
Campaign -- AutomaticCampaignStatus : status
CampaignExecution -- CampaignExecutionStatus : status
CampaignExecutionChecker <|-- NotifyFailedCampaignExecutionChecker
CampaignExecutionChecker <|-- CreateAppCampaignExecutionChecker
CampaignExecution -- CampaignExecutionChecker : triggers
Last updated
Was this helpful?