cleanup
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 24 Jun 2020 13:22:25 +0000 (15:22 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 24 Jun 2020 20:55:37 +0000 (22:55 +0200)
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ConversationalTransientEntityCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManagerObserver.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/springframework/remoting/httpinvoker/CachingHttpInvokerProxyFactoryBean.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java

index f68c77f82419cf901b43e7d9e2dd5a6c30966b31..13de349576ffa2692b8e69edc75aeb6bb3ec2982 100755 (executable)
@@ -41,7 +41,7 @@ public class ConversationalTransientEntityCacher extends CdmTransientEntityCache
         boolean updatedCdmIdsIsEmpty = updatedCdmIds.isEmpty();
 
         // if the cdm identifier set contains identifiers of objects already
-        // present in the updated objects set reomve them
+        // present in the updated objects set remove them
         for(CdmBase updatedObject : updatedObjects) {
             if(updatedObject != null && super.exists(new CdmEntityCacheKey<>(updatedObject))) {
                 CdmEntityIdentifier cdmEntityIdentifier = new CdmEntityIdentifier(updatedObject.getId(), updatedObject.getClass());
@@ -54,9 +54,10 @@ public class ConversationalTransientEntityCacher extends CdmTransientEntityCache
 
         // remote load cdm identifiers of objects which already exist
         // in the cache
-
         for(CdmEntityIdentifier cei : updatedCdmIds) {
-            if(exists(new CdmEntityCacheKey<>(cei.getCdmClass(), cei.getId()))) {
+            @SuppressWarnings({ "rawtypes", "unchecked" })
+            CdmEntityCacheKey<?> cacheKey = new CdmEntityCacheKey(cei.getCdmClass(), cei.getId());
+            if(exists(cacheKey)) {
                 reloadedObjects.add(load(cei, update));
             }
         }
index 3d51857c1ab7485072b10d756bac0dcded9fe8eb..c68a1833b35e2bd882146f2229dc20cddce4cf20 100644 (file)
@@ -56,8 +56,6 @@ public class CdmEntitySession implements ICdmEntitySession  {
 
     private void init(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
         this.cdmTransientEntityCacher = new ConversationalTransientEntityCacher(sessionOwner);
-
-
         this.changeObservers = new ArrayList<>();
         cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
     }
index 85751d57a74c37d2985e2b96162f2265df21a0fd..1cd86f27f942294dd00a2bf7cdf52cbf4b7895c8 100644 (file)
@@ -21,14 +21,18 @@ import org.springframework.stereotype.Component;
 
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 
 /**
+ * Implementation for {@link ICdmEntitySessionManager}
+ *
  * @author cmathew
  * @date 16 Oct 2014
  */
 @Component
 public class CdmEntitySessionManager implements ICdmEntitySessionManager {
+
     private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
 
     private final Map<ICdmEntitySessionEnabled, ICdmEntitySession> ownerSessionMap = new HashMap<>();
@@ -39,7 +43,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
 
     private final InheritableThreadLocal<ICdmEntitySession> tlActiveSession = new InheritableThreadLocal<>();
 
-    private  NullSession nullSession;
+    private NullSession nullSession;
 
     @Override
     public ICdmEntitySession getNullSession() {
@@ -140,7 +144,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     @Override
-    public MergeResult load(MergeResult mergeResult, boolean update) {
+    public <T extends ICdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
         if(tlActiveSession.get() == null) {
             return mergeResult;
         }
@@ -192,7 +196,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
         }
     }
 
-    void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
+    public void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
         ownerSessionMap.put(owner, session);
         notifyObservers();
     }
index a865a53791b3c228781ca5f4d4ef9e4cce126db2..79511f7fb0c3d53956e3ec274a3afb736aec1bf6 100644 (file)
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.session;
 
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.cache.CdmTransientEntityCacher;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 
+/**
+ * Manager to manage all {@link ICdmEntitySession}s.
+ * <p>
+ * It allows to create new sessions, handles binding and disposing, registering
+ * and notifying observers, thread handling and also offers
+ * convenient methods to load the active session.
+ *
+ * @author c.mathew
+ * @date 2014
+ */
 public interface ICdmEntitySessionManager {
 
+    /**
+     * Creates a new session for the sessionOwner.
+     *
+     * @param sessionOwner the session owner
+     * @param setAsActive if
+     * @return the new session
+     */
     public abstract ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive);
 
     /**
-     * @param sessionOwner
-     * @return
+     * Makes the {@link NullSession} the active session.
+     * @return the null session
      */
     public ICdmEntitySession bindNullSession();
 
-
+       /**
+        * Makes the session belonging to the session owner the active session.
+        *
+        * @param sessionOwner
+        */
        public abstract void bind(ICdmEntitySessionEnabled sessionOwner);
 
-
        /**
-     * @see eu.etaxonomy.cdm.cache.CdmTransientEntityCacher#load(Collection, boolean)
+        * Loads an object intto the active session and returns the cached object
+        * which is the identical (same) object if an equal object did not yet exist
+        * in the session. If an equal object existed the cached object is returned.
+        * This cached object is equal (x.equals(x')) but not identical (x != x').
+        *
+        * @param object the object to load into the cache
+        * @param update if <code>true</code>, the state of the object graph
+        *   attached to the object is copied on the according objects in the cache
+        * @return the cached object
+        * @see CdmTransientEntityCacher#load(Object, boolean)
+        * @see CdmTransientEntityCacher#load(CdmBase, boolean)
      */
-       public abstract <T extends Object> T load(T obj, boolean update);
+       public abstract <T extends Object> T load(T object, boolean update);
 
     /**
-     * @see eu.etaxonomy.cdm.cache.CdmTransientEntityCacher#load(Collection, boolean)
+     * Loads an {@link CdmBase} into the active session as explained in {@link #load(Object, boolean)}.
+     *
+     * @see #load(Object, boolean)
+     * @see CdmTransientEntityCacher#load(CdmBase, boolean)
      */
        public abstract <T extends CdmBase> T load(T cdmBase, boolean update);
 
-
+    /**
+     * Loads an {@link UpdateResult} into the active session as explained in {@link #load(Object, boolean)}.
+     *
+     * @see #load(Object, boolean)
+     * @see CdmTransientEntityCacher#load(UpdateResult, boolean)
+     */
        public abstract UpdateResult load(UpdateResult updateResult, boolean update);
 
-       public abstract MergeResult load(MergeResult mergeResult, boolean update);
-
+    /**
+     * Loads an {@link MergeResult} into the active session as explained in {@link #load(Object, boolean)}.
+     *
+     * @see #load(Object, boolean)
+     * @see CdmTransientEntityCacher#load(MergeResult, boolean)
+     */
+       public abstract <T extends ICdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update);
 
+    /**
+     * Loads an {@link Collection} of {@link CdmBase} objects into the active session as
+     * explained in {@link #load(Object, boolean)}.
+     *
+     * @see #load(Object, boolean)
+     * @see CdmTransientEntityCacher#load(Collection, boolean)
+     */
        public abstract <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
 
-
     /**
-     * @return
+     * @return the active session
      */
     public ICdmEntitySession getActiveSession();
 
+    /**
+     * Returns all sessions managed by this {@link ICdmEntitySessionManager session manager}
+     * @return
+     */
     public Collection<ICdmEntitySession> getSessions();
 
     public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver);
 
-
-
-
     public boolean isRemoting();
 
-    /**
-     * @param owner
-     */
     public void dispose(ICdmEntitySessionEnabled owner);
 
-    /**
-     *
-     */
     public void disposeAll();
 
-
-    /**
-     *
-     */
     public <T extends CdmBase> void update();
 
     /**
-     * @param sessionOwner
-     * @return
+     * Returns <code>true</code> if there is a session managed for the given session owner.
+     * @param sessionOwner the session owner
+     * @return <code>true</code> if a session exists
      */
     public boolean contains(ICdmEntitySessionEnabled sessionOwner);
 
     /**
-     * @return
+     * Returns the {@link NullSession} singleton instance (within this session manager)
+     * @return the null session
      */
     public ICdmEntitySession getNullSession();
 
-
 }
index d4f3e60f35168c06b004959b67f7e2f3bd0f62da..d68b441115f19f513113c03b4cc05c56845e233c 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.session;
 /**
  * @author cmathew
  * @date 16 Feb 2015
- *
  */
 public interface ICdmEntitySessionManagerObserver {
 
index 3e04e3b9e6180f58da2b021133a3a62730c4a08c..2b89d7342ec422ee7fe14cb99d77c83c4373d3f9 100644 (file)
@@ -24,7 +24,6 @@ import net.sf.ehcache.statistics.LiveCacheStatistics;
 /**
  * @author cmathew
  * @date 29 Jan 2015
- *
  */
 public class MockCdmEntitySession implements ICdmEntitySession  {
 
index 263efab59865ae3c8af3fad4e98797a7b5d60014..7585c9d63bba713f012e4f06de1c663b9c670984 100644 (file)
@@ -1,19 +1,26 @@
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.session.mock;
 
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
 
-
 public class MockCdmEntitySessionManager implements ICdmEntitySessionManager {
 
-
        @Override
        public void bind(ICdmEntitySessionEnabled sessionOwner) {
        }
@@ -28,119 +35,70 @@ public class MockCdmEntitySessionManager implements ICdmEntitySessionManager {
                return obj;
        }
 
-
        @Override
        public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
                return cdmBaseList;
        }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#newSession(eu.etaxonomy.taxeditor.session.ISessionEventListener, boolean)
-     */
     @Override
     public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
         return new MockCdmEntitySession();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getActiveSession()
-     */
     @Override
     public ICdmEntitySession getActiveSession() {
         return new MockCdmEntitySession();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getSessions()
-     */
     @Override
     public Collection<ICdmEntitySession> getSessions() {
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addSessionObserver(eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver)
-     */
     @Override
     public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver) {
 
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#isRemoting()
-     */
     @Override
     public boolean isRemoting() {
         return false;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled)
-     */
     @Override
     public void dispose(ICdmEntitySessionEnabled owner) {
-
-
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#disposeAll()
-     */
     @Override
     public void disposeAll() {
-
-
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#update()
-     */
     @Override
     public <T extends CdmBase> void update() {
-        // TODO Auto-generated method stub
-
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.cdm.api.service.UpdateResult, boolean)
-     */
     @Override
     public UpdateResult load(UpdateResult updateResult, boolean update) {
         return updateResult;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#contains(eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled)
-     */
     @Override
     public boolean contains(ICdmEntitySessionEnabled sessionOwner) {
         return false;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bindNullSession(eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled)
-     */
     @Override
     public ICdmEntitySession bindNullSession() {
         return new MockCdmEntitySession();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getNullSession()
-     */
     @Override
     public ICdmEntitySession getNullSession() {
         return new MockCdmEntitySession();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
-     */
     @Override
-    public MergeResult load(MergeResult mergeResult, boolean update) {
+    public <T extends ICdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
         return mergeResult;
     }
-
 }
index aec18138929dd4c4376bed2c2972c4cf7b6dbb6e..45b3c7c713a10e7c7ef6070c959b0e5df03ab631 100644 (file)
@@ -18,7 +18,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author cmathew
  * @date 5 Feb 2015
- *
  */
 public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled {
 
@@ -58,10 +57,6 @@ public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled
 
     public abstract void merge();
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
index a525a4bf53e989d1d99f5e7aa326169f476bc1cb..07a9827a16813c5dc70a59b0137f80092beae4cf 100644 (file)
@@ -264,7 +264,7 @@ public abstract class AbstractTermTreeEditor implements IFeatureTreeEditor, ISel
         CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities());
 
         List<TermTree> rootEntities = getRootEntities();
-        for (TermTree featureTree : rootEntities) {
+        for (TermTree<Character> featureTree : rootEntities) {
             if(featureTree.getTermType().equals(TermType.Character)){
                 TermTree<Character> characterTree = featureTree;
                 //save characters because they can be modified in this editor