@startuml images/02_class.png Title Control Package Class Structure interface Runnable { run() } enum WorkflowSignalState package org.dataone.configuration { class Settings } package org.dataone.cn.audit { class DataONEConfiguration { HashMap dataONEConfig == mapConfig() readConfig() getDataONEConfig() } package org.dataone.cn.audit.control { interface JobController { stopTask() } interface AuditJob { stopJob() startJob() } package org.dataone.cn.audit.control.impl{ class AuditJobControllerImpl { -{static} JobAudit jobAudit == .. +init() +waitForClusterNodes() +runTask() +stopTask() } class AuditJobImpl { Topic hzCommandTopic BlockingDeque waitProgessDeque; == +run() +startJob() +stopJob() } } AuditJobImpl <.. AuditJob AuditJobControllerImpl <.. JobController AuditJobControllerImpl *-- AuditJob } AuditJob <.. Runnable AuditJobControllerImpl *-- DataONEConfiguration DataONEConfiguration *-- Settings } @enduml