- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
- */
- @Override
- public void bind(ICdmEntitySessionEnabled sessionOwner) {
- if(sessionOwner == null) {
- activeSession = null;
- return;
- }
- ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
- if(session == null) {
- session = newSession(sessionOwner,true);
- }
-
- activeSession = session;
-
- }
-
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
- */
- @Override
- public <T extends Object> T load(T obj, boolean update) {
- if(activeSession == null) {
- return obj;
- } else {
- return activeSession.load(obj, update);
- }
- }
-
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
- */
- @Override
- public <T extends CdmBase> T load(T cdmBase, boolean update) {
- if(activeSession == null) {
- return cdmBase;
- }
- return activeSession.load(cdmBase, update);
- }
-
-
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
- */
- @Override
- public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
- if(activeSession == null) {
- return cdmBaseList;
- }
- return activeSession.load(cdmBaseList, update);
- }
-
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
- */
- void dispose(ICdmEntitySessionEnabled owner) {
- ICdmEntitySession session = ownerSessionMap.get(owner);
- if(session == null) {
- logger.info("No Session connected to owner, nothing to dispose");
- return;
- }
- if(session == activeSession) {
- activeSession = null;
- }
- ownerSessionMap.remove(owner);
- notifyObservers();
- }
-
- void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
- ownerSessionMap.put(owner, session);
- }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+ */
+ @Override
+ public void bind(ICdmEntitySessionEnabled sessionOwner) {
+ if(sessionOwner == null) {
+ setActiveSession(null);
+ return;
+ }
+ ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
+ if(session == null) {
+ session = newSession(sessionOwner,true);
+ }
+
+ setActiveSession(session);
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+ */
+ @Override
+ public <T extends Object> T load(T obj, boolean update) {
+ if(activeSession == null) {
+ return obj;
+ } else {
+ return activeSession.load(obj, update);
+ }
+ }
+
+ @Override
+ public <T extends CdmBase> void update(T cdmBase, Set<CdmBase> affectedObjects) {
+ if(activeSession != null) {
+ activeSession.addEvent(cdmBase, affectedObjects, EventType.UPDATE);
+ }
+ }
+
+ @Override
+ public <T extends CdmBase> void update() {
+ if(activeSession != null) {
+ activeSession.update();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
+ */
+ @Override
+ public <T extends CdmBase> T load(T cdmBase, boolean update) {
+ if(activeSession == null) {
+ return cdmBase;
+ }
+ return activeSession.load(cdmBase, update);
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
+ */
+ @Override
+ public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
+ if(activeSession == null) {
+ return cdmBaseList;
+ }
+ return activeSession.load(cdmBaseList, update);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
+ */
+ void remove(ICdmEntitySessionEnabled owner) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session == null) {
+ logger.info("No Session connected to owner, nothing to do");
+ return;
+ }
+ if(session == activeSession) {
+ setActiveSession(null);
+ }
+ ownerSessionMap.remove(owner);
+
+ }
+
+ @Override
+ public void dispose(ICdmEntitySessionEnabled owner) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session != null) {
+ session.dispose();
+ }
+ notifyObservers();
+ }
+
+ @Override
+ public void disposeAll() {
+ Set<ICdmEntitySessionEnabled> owners =
+ new HashSet<ICdmEntitySessionEnabled>(ownerSessionMap.keySet());
+ for(ICdmEntitySessionEnabled owner : owners) {
+ ICdmEntitySession session = ownerSessionMap.get(owner);
+ if(session != null) {
+ session.dispose();
+ }
+ }
+ notifyObservers();
+ }
+
+ void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
+ ownerSessionMap.put(owner, session);
+ }