@startuml images/05_class.png Title Cn Audit Data Class Structure package org.dataone.cn.audit { package org.dataone.cn.audit.data{ class AuditMessageProcessContext { -{static} Boolean activeNode -{static} Object pid -{static} Object serialVersion -{static} Object lastSystemMetadataModificationDate -{static} Object systemMetadata -{static} Object ActiveNodeId -{static} WorkflowState workflowState == _setActiveNode .. _Synchronized Methods_ +setPid() +setSerialVersion() +setLastSystemMetadataModificationDate() +setSystemMetadata() +activateNodeId() +setWorkflowStateSignal() .. __ +isActiveNode() +getPid() +getSerialVersion() +getLastSystemMetadataModificationDate() +getSystemMetadata() +getActiveNodeId() +getActiveWorkflowSignal() } class AuditMessage { .. Serializable .. - WorkflowState signal; - NodeIdentifier nodeId; - SystemMetadata systemMetadata; - NodeReference originatingNode; - NodeReference targetNode; - Integer startPageNumber == + getSignal() + getNodeId() + getSystemMetadata() + getOriginatingNode() +getTargetNode() +getStartPageNumber() } enum WorkflowState { INIT /** milestone at startup of the process **/ RETRIEVE_SYSMETA_TOTAL /** return hzHarvestTotalsRecord from each Node **/ HARVEST_SYSMETA_LIST /** return hzDigestListRecord from each Node **/ RETRIEVE_SYSMETA /** return back a HzSysMetaDataRecord */ UPDATE_SYSMETA /** perform an update and commit of merged systemMetadata **/ ACK_UPDATE /** response to active node after Update SystemMeta **/ RESET_HARVEST /** stop the harvest process **/ END_AUDIT /** may be significant to perform cleanup before ending the processing */ NODE_FAILURE /** exception queue needs to be evaluated **/ } AuditMessageProcessContext *-- WorkflowState AuditMessage *-- WorkflowState class DigestAuditRecord { .. Serializable .. -Identifier pid -long serialVersion -Date lastSystemMetadataModificationDate -Boolean deleted == +getPid() +setPid() +getSerialVersion() +setSerialVersion() +getLastSystemMetadataModificationDate() +setLastSystemMetadataModificationDate() +isDeleted() +deleted() } class DataoneConfiguration { - static String contextLabel - static String debConfNS - static String ipExpression - static String nodeIdExpression - String activeNodeId - String nodeId - Resource d1DebConfiguration; - List nodes = null; == - initialize() - initializeXPathExpressions() - parseXPath() - generateXmlDocument() # DataoneConfiguration() + DataoneConfiguration() + init() + getNodeConfigInfoByIp() + getNodeConfigInfoByNode() + getActiveNodeConfigInfo() + getNodeConfigInfoForLocal() + isLocalNode() + isActiveNode() + isPassiveNode() } class NodeConfigInfo { - NodeReference nodeReference - String ip - boolean activeNode - boolean memberOfCluster == + getNodeReference() + setNodeReference() + getIp() + setIp() + isActiveNode() + setActiveNode() + isMemberOfCluster() + setMemberOfCluster } DataoneConfiguration *-- NodeConfigInfo } } @enduml