Add method to sessionOwner objects to fine tune performance using property paths
authorCherian Mathew <c.mathew@bgbm.org>
Fri, 10 Jul 2015 14:47:45 +0000 (16:47 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Fri, 10 Jul 2015 14:47:45 +0000 (16:47 +0200)
22 files changed:
eu.etaxonomy.taxeditor.application/.classpath
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CachedCommonServiceImpl.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.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/ICdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionEnabled.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchView.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java

index 0f0d04b90bfb69678c587c34bb3585294306ea2f..4c0364cadc7a33d0798a7c7813ef92548fe8cb81 100644 (file)
@@ -4,6 +4,5 @@
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
        <classpathentry kind="src" path="src/test/java"/>
-       <classpathentry kind="src" path="src/main/resources/"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
index ddcf61255c73effa237f891771acff361c552cbd..0c22bd9bd0dd58da6dda2cad74262458cf2ac08b 100644 (file)
@@ -14,6 +14,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -323,4 +324,14 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
     public   List<T> getRootEntities() {
         return getModel();
     }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
index aa85488893bc426561097114c3348031c79a25dd..f20a9a63651485e8944b4bd915d0448a741139cf 100644 (file)
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: CDM Library Dependencies Plugin
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 3.6.1
+Bundle-Version: 3.6.1.qualifier
 Eclipse-BundleShape: dir
 Export-Package: com.google.api,
  com.google.api.detect,
index 4b2503f199874e642802509f6f3824a1e85ac5e9..3b302659c707ad45ef973ae6442197a95bd1a35a 100644 (file)
@@ -9,14 +9,18 @@
 */
 package eu.etaxonomy.taxeditor.service;
 
+import java.util.List;
 import java.util.UUID;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils.CollectionField;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 
 /**
@@ -51,7 +55,7 @@ public class CachedCommonServiceImpl implements ICachedCommonService {
     @Override
     public CdmBase find(Class<? extends CdmBase> clazz, int id) {
         if(cacheEnabled) {
-            CdmBase cdmEntity = CdmBase.deproxy(commonService.find(clazz, id),clazz);
+            CdmBase cdmEntity = CdmBase.deproxy(commonService.find(clazz, id, getPropertyPaths(clazz)),clazz);
             if(cdmEntity == null) {
                 throw new NullPointerException("CDM Entity of type " + clazz.getName() + " with id " + id  + " is null.");
             }
@@ -62,6 +66,16 @@ public class CachedCommonServiceImpl implements ICachedCommonService {
     }
 
 
+    private List<String> getPropertyPaths(Object obj) {
+        List<String> propertyPaths = null;
+        ICdmEntitySession cdmEntitySession =
+                ((CdmApplicationRemoteController)CdmApplicationState.getCurrentAppConfig()).getCdmEntitySessionManager().getActiveSession();
+        if(cdmEntitySession != null) {
+            propertyPaths = cdmEntitySession.getPropertyPaths(obj);
+        }
+        return propertyPaths;
+    }
+
     @Override
     public void updatePersistentCollection(CollectionField colf) {
         if(cacheEnabled) {
@@ -74,7 +88,7 @@ public class CachedCommonServiceImpl implements ICachedCommonService {
      */
     @Override
     public Object initializeCollection(UUID ownerUuid, String fieldName) {
-        return commonService.initializeCollection(ownerUuid, fieldName);
+        return commonService.initializeCollection(ownerUuid, fieldName, getPropertyPaths(fieldName));
     }
 
 
index 4d7b5cfd3a9b8df319ed1e8c30de089d861867e9..888c1ca3c8e97f132a047c61fd8e1a6ca8d39cde 100644 (file)
@@ -44,14 +44,16 @@ public class CdmServiceRequestExecutor extends CdmAuthenticatedHttpInvokerReques
                    logger.info("Remote invoking : " + currentRemoteInvocation.getMethodName() + "@" + config.getServiceUrl());
                        rir = super.doExecuteRequest(config, baos);
                        if(rir.getValue() != null && !rir.hasException()) {
-                           if(rir.getValue() instanceof UpdateResult){
-                               UpdateResult result = (UpdateResult)rir.getValue();
-                               if(result.isOk()){
-                                   rir = new RemoteInvocationResult(cdmEntitySessionManager.load(result, true));
-                               }
-                           } else {
-                               rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
-                           }
+                if("merge".equals(currentRemoteInvocation.getMethodName()) || "save".equals(currentRemoteInvocation.getMethodName())) {
+                    rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
+                } else if(rir.getValue() instanceof UpdateResult){
+                    UpdateResult result = (UpdateResult)rir.getValue();
+                    if(result.isOk()){
+                        cdmEntitySessionManager.load(result, true);
+                    }
+                } else {
+                    rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), false));
+                }
                        }
                        cache(currentRemoteInvocation, rir);
                }
index b039d20c344687cd8d9382c803cdd9e88c85444b..97de82fcca7b4eead83b7f715edc051e3ce7e9a9 100644 (file)
@@ -14,6 +14,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
@@ -288,16 +289,13 @@ public class CdmEntitySession implements ICdmEntitySession  {
         return cdmTransientEntityCacher;
     }
 
-
-
-
-
-
-
-
-
-
-
-
+    @Override
+    public List<String> getPropertyPaths(Object obj) {
+        Map<Object, List<String>> propertyPathsMap = sessionOwner.getPropertyPathsMap();
+        if(propertyPathsMap == null || propertyPathsMap.isEmpty()) {
+            return null;
+        }
+        return propertyPathsMap.get(obj);
+    }
 
 }
index 48007f9947f7790e0c7187066085d76cd8a22622..c43e88d43ea75b06633584a860b92d8da075c4a1 100644 (file)
@@ -82,6 +82,10 @@ public interface ICdmEntitySession {
     public <T extends CdmBase> void update();
 
 
-
+    /**
+     * @param obj
+     * @return
+     */
+    public List<String> getPropertyPaths(Object obj);
 
 }
\ No newline at end of file
index 7e6a2308bffac310a41bf213a89717786f99f8f5..be2e46c7c867f14f8a89b5851200c849ee6ab366 100644 (file)
@@ -1,6 +1,8 @@
 package eu.etaxonomy.taxeditor.session;
 
 import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
@@ -10,4 +12,6 @@ public interface ICdmEntitySessionEnabled {
 
     public <T extends CdmBase> Collection<T> getRootEntities();
 
+    public Map<Object, List<String>> getPropertyPathsMap();
+
 }
index da64b2a97a8e483f8678ccc7f21d96cca9993c1d..5db78a9f77f7dedbab8065107db25d89cd372a1a 100644 (file)
@@ -189,5 +189,14 @@ public class MockCdmEntitySession implements ICdmEntitySession  {
         return updateResult;
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getPropertyPath(java.lang.Class)
+     */
+    @Override
+    public List<String> getPropertyPaths(Object obj) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 
 }
index b8742e3dafe892ee1fb92bab8d0f4822fca410bf..8540c7d34bf30503d1b03d66f4196acadb7c96f8 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.editor;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
@@ -93,8 +94,28 @@ public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorI
      */
     private void initForTaxonNode(UUID taxonNodeUuid) {
 
-
-        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid);
+        List<String> taxonNodePropertyPaths = Arrays.asList(new String[] {
+                "taxon.annotations",
+                "taxon.markers",
+                "taxon.credits",
+                "taxon.extensions",
+                "taxon.rights",
+                "taxon.sources",
+                "taxon.descriptions",
+                "taxon.synonymRelations",
+                "taxon.relationsToThisTaxon",
+                "taxon.relationsFromThisTaxon",
+                "taxon.taxonNodes",
+                "taxon.name.status",
+                "taxon.name.homotypicalGroup.typifiedNames",
+                "taxon.name.taxonBases",
+                "taxon.name.descriptions.descriptionElements",
+                "taxon.name.descriptions.markers"
+
+
+        });
+
+        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, taxonNodePropertyPaths);
 
         if(taxonNode == null){
             MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
@@ -453,4 +474,31 @@ public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorI
         CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
     }
 
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+//        Map<Object, List<String>> propertyPathsMap = new HashMap<Object, List<String>>();
+//        List<String> taxonNameBasePropertyPaths = Arrays.asList(new String[] {
+//                "status",
+//                "taxonBases.taxonNodes",
+//                "homotypicalGroup.typifiedNames.taxonBases.synonymRelations",
+//                "taxonBases.relationsToThisTaxon",
+//                "taxonBases.relationsFromThisTaxon",
+//                "descriptions"
+//        });
+//         propertyPathsMap.put(TaxonNameBase.class, taxonNameBasePropertyPaths);
+//
+//         List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {
+//                 "taxon.annotations",
+//                 "taxon.markers",
+//                 "taxon.credits",
+//                 "taxon.extensions",
+//                 "taxon.rights",
+//                 "taxon.sources",
+//                 "taxon.descriptions"
+//         });
+//        propertyPathsMap.put(TaxonNode.class, taxonBasePropertyPaths);
+//        return propertyPathsMap;
+        return null;
+    }
+
 }
index 7f80174c19240a548b70db0f52cc270f48b227b8..687496ec243b4f3fece67252ad76553e4e472e16 100644 (file)
@@ -86,7 +86,7 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
                        throws ExecutionException {
 
                try {
-                       newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym, element, true, true, null, null);
+                       newTaxon = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(), element.getUuid(), true, true, null, null);
                } catch (HomotypicalGroupChangeException e) {
                        MessagingUtils.warningDialog("Operation may lead to inconsistent data", getClass(), e.getMessage());
                        return postExecute(null);
index b191647d838a123ed117900bf00d401a175a643e..0519c80542f4f791235fa58cec215232c0f49a9b 100644 (file)
@@ -1496,4 +1496,13 @@ public class TransientTaxonService implements ITaxonService {
     public DeleteResult deleteSynonym(UUID arg0, SynonymDeletionConfigurator arg1) {
         return defaultService.deleteSynonym(arg0, arg1);
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#changeSynonymToAcceptedTaxon(java.util.UUID, java.util.UUID, boolean, boolean, eu.etaxonomy.cdm.model.reference.Reference, java.lang.String)
+     */
+    @Override
+    public Taxon changeSynonymToAcceptedTaxon(UUID arg0, UUID arg1, boolean arg2, boolean arg3, Reference arg4,
+            String arg5) throws HomotypicalGroupChangeException {
+        return defaultService.changeSynonymToAcceptedTaxon(arg0, arg1, arg2, arg3, arg4, arg5);
+    }
 }
index 7c66b8ace01796a477d3db1972833cce4464f5c8..bc31a66b8f4505c86120c6f8da131b67e75dd28c 100644 (file)
@@ -3,6 +3,7 @@ package eu.etaxonomy.taxeditor.editor.view.derivate;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.UUID;
@@ -368,4 +369,13 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         return contentProvider.getRootElements();
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
index d018d6b4feb9911e28cc5e4e71b6f273527ee4d3..e1c69d80461f332d00ad94cc01049dda471806ea 100644 (file)
@@ -4,6 +4,7 @@
 package eu.etaxonomy.taxeditor.navigation.key.polytomous;
 
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.common.NotDefinedException;
@@ -321,4 +322,13 @@ public class PolytomousKeyViewPart extends ViewPart implements
 
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
index f36f3912539e2c711fc082864e8ae003e2ec3308..6c8193a72b92a595179eb136955d96e4755ccab8 100644 (file)
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Observable;
 import java.util.Observer;
 import java.util.Set;
@@ -528,4 +531,17 @@ public class TaxonNavigator extends CommonNavigator implements
         }
 
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        Map<Object, List<String>> propertyPathsMap = new HashMap<Object, List<String>>();
+        List<String> taxonNodePropertyPaths = Arrays.asList(new String[] {
+                "taxon.name"
+        });
+         propertyPathsMap.put("childNodes", taxonNodePropertyPaths);
+        return propertyPathsMap;
+    }
 }
index 86da9e875ad964fc0d09400a1e8d1d532eda28f5..7b83c4bce264183c308a6f3f0aaf2fb9b7f0b0d1 100644 (file)
@@ -9,6 +9,9 @@
 */
 package eu.etaxonomy.taxeditor.editor;
 
+import java.util.List;
+import java.util.Map;
+
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -41,4 +44,14 @@ 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
+        return null;
+    }
+
 }
index b01236b244b11bbdac1a0f413b7bc8ef19f39560..d83a187cb3fb349a39a54d2ce709478ef7100f12 100644 (file)
@@ -10,6 +10,8 @@
 package eu.etaxonomy.taxeditor.editor.definedterm;\r
 \r
 import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Map;\r
 import java.util.Set;\r
 \r
 import org.eclipse.core.runtime.IProgressMonitor;\r
@@ -291,5 +293,14 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
         return getDefinedTermEditorInput().getVocabularies();\r
     }\r
 \r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()\r
+     */\r
+    @Override\r
+    public Map<Object, List<String>> getPropertyPathsMap() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
 \r
 }
\ No newline at end of file
index 03acaeb247bdf7d4af4a919fcf122eb5820d784e..27be236e307398262fb4612ca8fef58a28b159ef 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.view;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -209,4 +210,14 @@ public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
     public void forceDirty() {
         changed(null);
     }
+
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
index b73c4aad6d0fd16e9035e870d3588f1e5b8c3325..c7346c245d4439cb1ad321f32f0184750abc02df 100644 (file)
@@ -10,6 +10,8 @@
 package eu.etaxonomy.taxeditor.view.derivateSearch;
 
 import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.action.MenuManager;
@@ -165,4 +167,13 @@ public class DerivateSearchView extends ViewPart implements IContextListener, IC
         // TODO Auto-generated method stub
         return null;
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
index 4b503a251b98475649159d8ce19c029c6d06c54b..d04c17fe4671a3d9768a147eb315a1b81ffe2ecb 100644 (file)
@@ -2,6 +2,7 @@ package eu.etaxonomy.taxeditor.session;
 
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.log4j.Logger;
@@ -87,4 +88,13 @@ public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEna
 
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
+     */
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }