public class CorrespondingObjectManager extends java.lang.Object implements ObjectManagerInterface
Verwaltung korrespondierender Objekte, der Konfigurationsbereiche um diese abzuspeichern, und der Plug-Ins um die Attributgruppen zu konvertieren
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,ConfigurationArea> |
_localAreas |
private ClientDavInterface |
_localConnection |
private ConfigurationArea |
_localDefaultArea |
private ManagerInterface |
_manager |
private HashBagMap<ObjectSpecification,CorrespondingObject> |
_objectMap |
private java.util.Map<AttributeGroupPair,KExDaVDataPlugin> |
_plugins |
private java.util.Map<java.lang.String,ConfigurationArea> |
_remoteAreas |
private ClientDavInterface |
_remoteConnection |
private ConfigurationArea |
_remoteDefaultArea |
Constructor and Description |
---|
CorrespondingObjectManager(ClientDavInterface localConnection,
ClientDavInterface remoteConnection,
ManagerInterface manager,
java.util.Map<AttributeGroupPair,KExDaVDataPlugin> plugins)
Erstellt eine Verwaltung korrespondierender Objekte.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Beendet alle von dieser Klasse verwendeten Austausche
|
void |
copyObjectIfNecessary(ObjectSpecification objectSpecification,
ClientDavInterface sourceConnection,
ClientDavInterface targetConnection)
Wird aufgerufen, wenn im Zielsystem ein dynamisches Objekt gebraucht wird.
|
CopyableCorrespondingObject |
createObjectExchange(ObjectSpecification objectSpecification,
Direction direction)
Erstellt einen Austausch dynamischer Objekte
|
ConfigurationArea |
getConfigurationAreaLocal(java.lang.String typePid)
Sucht den passenden Konfigurationsbereich um ein Objekt im Lokal-System abzuspeichern
|
ConfigurationArea |
getConfigurationAreaRemote(java.lang.String typePid)
Sucht den passenden Konfigurationsbereich um ein Objekt im Remote-System abzuspeichern
|
ClientDavInterface |
getLocalConnection()
Gibt die lokale Verbindung zurück
|
CorrespondingObject |
getObject(ObjectSpecification objectSpecification)
Gibt zu einer Pid ein korrespondierendes Objekt zurück, ohne dieses zu kopieren o.ä.
|
KExDaVDataPlugin |
getPlugIn(java.lang.String atgSource,
java.lang.String atgTarget)
Gibt ein Plugin zurück um von atgSource nach atgTarget zu konvertieren.
|
ClientDavInterface |
getRemoteConnection()
Gibt die Remote-Verbindung zurück
|
private void |
removeIllegalObjects(boolean onRemoteSystem,
ConfigurationArea targetArea,
java.util.Collection<ConfigurationArea> additionalTargetAreas)
Löscht Objekte aus den Austauschbereichen, die dort nichts zu suchen haben.
|
private void |
removeObject(boolean onRemoteSystem,
SystemObject systemObject)
Löscht ein Objekt.
|
boolean |
removeObjectExchange(ObjectSpecification objectSpecification,
Direction direction)
Entfernt einen Objektaustausch
|
void |
setConfigurationAreas(ConfigurationArea localDefaultArea,
ConfigurationArea remoteDefaultArea,
java.util.Map<java.lang.String,ConfigurationArea> localAreas,
java.util.Map<java.lang.String,ConfigurationArea> remoteAreas)
Setzt die Konfigurationsbereiche, in denen die Objekte angelegt werden sollen
|
java.lang.String |
toString() |
private final HashBagMap<ObjectSpecification,CorrespondingObject> _objectMap
private java.util.Map<java.lang.String,ConfigurationArea> _localAreas
private java.util.Map<java.lang.String,ConfigurationArea> _remoteAreas
private ConfigurationArea _localDefaultArea
private ConfigurationArea _remoteDefaultArea
private final ClientDavInterface _localConnection
private final ClientDavInterface _remoteConnection
private final ManagerInterface _manager
private final java.util.Map<AttributeGroupPair,KExDaVDataPlugin> _plugins
public CorrespondingObjectManager(ClientDavInterface localConnection, ClientDavInterface remoteConnection, ManagerInterface manager, java.util.Map<AttributeGroupPair,KExDaVDataPlugin> plugins)
Erstellt eine Verwaltung korrespondierender Objekte. Diese sollte es einmal pro Remote-Datenverteiler geben.
localConnection
- Lokale VerbindungremoteConnection
- Remote-Verbindungmanager
- KExDaV-Verwaltungplugins
- Plugins die pro Attributgruppenkonvertierung verwendet werdenpublic CopyableCorrespondingObject createObjectExchange(ObjectSpecification objectSpecification, Direction direction) throws MissingAreaException
Erstellt einen Austausch dynamischer Objekte
objectSpecification
- Pid des Objektesdirection
- Richtung des AustauschesMissingAreaException
- Falls kein Konfigurationsbereich gefunden werden konnte, um das Objekt auf dem Zielsystem anzulegenpublic boolean removeObjectExchange(ObjectSpecification objectSpecification, Direction direction)
Entfernt einen Objektaustausch
objectSpecification
- Piddirection
- Richtungpublic CorrespondingObject getObject(ObjectSpecification objectSpecification)
Gibt zu einer Pid ein korrespondierendes Objekt zurück, ohne dieses zu kopieren o.ä.
getObject
in interface ObjectManagerInterface
objectSpecification
- Pidpublic void copyObjectIfNecessary(ObjectSpecification objectSpecification, ClientDavInterface sourceConnection, ClientDavInterface targetConnection)
ObjectManagerInterface
Wird aufgerufen, wenn im Zielsystem ein dynamisches Objekt gebraucht wird. Diese Funktion sollte, falls nötig und möglich, das Objekt kopieren. Es gibt derzeit keine Rückmeldung, ob dies auch geklappt hat.
copyObjectIfNecessary
in interface ObjectManagerInterface
objectSpecification
- Spezifikation zur Ermittlung des ObjektessourceConnection
- QuellverbindungtargetConnection
- Zielverbindungpublic ClientDavInterface getLocalConnection()
ObjectManagerInterface
Gibt die lokale Verbindung zurück
getLocalConnection
in interface ObjectManagerInterface
public ClientDavInterface getRemoteConnection()
ObjectManagerInterface
Gibt die Remote-Verbindung zurück
getRemoteConnection
in interface ObjectManagerInterface
public ConfigurationArea getConfigurationAreaRemote(java.lang.String typePid) throws MissingAreaException
ObjectManagerInterface
Sucht den passenden Konfigurationsbereich um ein Objekt im Remote-System abzuspeichern
getConfigurationAreaRemote
in interface ObjectManagerInterface
typePid
- Objekt-TypMissingAreaException
- Falls kein Konfigurationsbereich gefunden werden konntepublic ConfigurationArea getConfigurationAreaLocal(java.lang.String typePid) throws MissingAreaException
ObjectManagerInterface
Sucht den passenden Konfigurationsbereich um ein Objekt im Lokal-System abzuspeichern
getConfigurationAreaLocal
in interface ObjectManagerInterface
typePid
- Objekt-TypMissingAreaException
- Falls kein Konfigurationsbereich gefunden werden konntepublic KExDaVDataPlugin getPlugIn(java.lang.String atgSource, java.lang.String atgTarget) throws MissingPluginException
ObjectManagerInterface
Gibt ein Plugin zurück um von atgSource nach atgTarget zu konvertieren. Wenn atgSource und atgTarget gleich sind wird einBasicKExDaVDataPlugin
zurückgegeben
getPlugIn
in interface ObjectManagerInterface
atgSource
- Quell-Attributgruppe (Pid)atgTarget
- Ziel-Attributgruppe (Pid)MissingPluginException
- Falls kein Plugin gefunden werden kannpublic void setConfigurationAreas(ConfigurationArea localDefaultArea, ConfigurationArea remoteDefaultArea, java.util.Map<java.lang.String,ConfigurationArea> localAreas, java.util.Map<java.lang.String,ConfigurationArea> remoteAreas)
Setzt die Konfigurationsbereiche, in denen die Objekte angelegt werden sollen
localDefaultArea
- Standardbereich Lokal (oder null für keinen Standardbereich)remoteDefaultArea
- Standardbereich Remote (oder null für keinen Standardbereich)localAreas
- Lokale zusätzliche Bereiche nach TypremoteAreas
- Remote zusätzliche Bereiche nach Typprivate void removeIllegalObjects(boolean onRemoteSystem, ConfigurationArea targetArea, java.util.Collection<ConfigurationArea> additionalTargetAreas)
Löscht Objekte aus den Austauschbereichen, die dort nichts zu suchen haben.
onRemoteSystem
- true wenn das Objekt auf dem Remotesystem, false wenn es auf dem Lokalsystem gelöscht werden solltargetArea
- StandardbereichadditionalTargetAreas
- Zusätzliche Bereicheprivate void removeObject(boolean onRemoteSystem, SystemObject systemObject) throws MissingKExDaVAttributeGroupException
Löscht ein Objekt. Objekte werden nur gelöscht, wenn sie ausgetauscht wurden, dynamische Objekte sind und eine Pid haben.
onRemoteSystem
- true wenn das Objekt auf dem Remotesystem, false wenn es auf dem Lokalsystem gelöscht werden sollsystemObject
- Objekt.MissingKExDaVAttributeGroupException
public java.lang.String toString()
toString
in class java.lang.Object
public void clear()
Beendet alle von dieser Klasse verwendeten Austausche