@startuml enum DBMSType { ORACLE MYSQL } enum ConnectionType { JDBC LDAP } class ConfigConnectionBean { -String id -String ress -String host -int port -String user -String bind -String pass -String db } class ConfigGlobalsBean { -int maxExecTime } class ConfigTaskBean { -String name -boolean skipReadErrors -boolean skipEntryDelete } class ConfigOpLimitsBean { -int insert -int update -int delete } enum SourceKind { FIXED_CSV FIXED_CSV_SORTED LDAP SQL } enum DestKind { LDAP } enum MVDataCombineMode { PRIMARY_SOURCE MERGE_APPEND MERGE_REPLACE OVERRIDE } class ConfigSourceBean { -String name -String conn -String query -String path -String attr -String base -int lookahead } class ConfigDestBean { -String name -String conn -String attr -String base -int lookahead } SSSync *-- "confMain (1)" ConfigRootBean SSSync *-- "confConn (1)" ConfigConnectionsBean ConfigRootBean *-- "globals (1)" ConfigGlobalsBean ConfigRootBean *-- "tasks (*)" ConfigTaskBean ConfigConnectionsBean *-- "connections (1)" ConfigConnectionBean ConfigConnectionBean *-- "dbms (1)" DBMSType ConfigConnectionBean *-- "type (1)" ConnectionType ConfigTaskBean *-- "opLimits (1)" ConfigOpLimitsBean ConfigTaskBean *-- "sources (*)" ConfigSourceBean ConfigTaskBean *-- "destination (1)" ConfigDestBean ConfigSourceBean *-- "kind (1)" SourceKind ConfigSourceBean *-- "mode (1)" MVDataCombineMode ConfigDestBean *-- "kind (1)" DestKind @enduml