import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.model.ICdmCacher;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
/**
* @author cmathew
} else if(obj instanceof Pager) {
load(((Pager)obj).getRecords(), recursive, update);
return obj;
+ } else if(obj instanceof MergeResult) {
+ return (T) load((MergeResult<CdmBase>)obj, recursive, update);
}
return obj;
}
+ public MergeResult<CdmBase> load(MergeResult<CdmBase> mergeResult, boolean recursive, boolean update) {
+ CdmBase cdmBase = load(mergeResult.getMergedEntity(), recursive, update);
+ load(mergeResult.getNewEntities(), recursive, update);
+ return mergeResult;
+ }
+
+
/**
* Puts the (Key,Value) pair of ({@link java.util.UUID}, {@link eu.etaxonomy.cdm.model.common.CdmBase}),
* in the cache corresponding to the given cache id
import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
import eu.etaxonomy.cdm.model.ICdmCacher;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
/**
return result;
}
+ public MergeResult<CdmBase> load(MergeResult<CdmBase> mergeResult, boolean update) {
+ return cacheLoader.load(mergeResult, true, update);
+ }
+
public CdmModelFieldPropertyFromClass getFromCdmlibModelCache(String className) {
return cacheLoader.getFromCdmlibModelCache(className);
}
import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
@Component
if("merge".equals(currentRemoteInvocation.getMethodName()) ||
"save".equals(currentRemoteInvocation.getMethodName()) ||
"findWithUpdate".equals(currentRemoteInvocation.getMethodName())) {
- if(rir.getValue() instanceof MergeResult) {
- MergeResult result = (MergeResult) rir.getValue();
- cdmEntitySessionManager.load(result.getMergedEntity(), true);
- cdmEntitySessionManager.load(result.getNewEntities(), true);
- } else {
- rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
- }
+ rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
} else if(rir.getValue() instanceof UpdateResult){
UpdateResult result = (UpdateResult)rir.getValue();
if(result.isOk()){
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
return cdmTransientEntityCacher.load(updateResult, update);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
+ */
+ @Override
+ public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
+ return cdmTransientEntityCacher.load(mergeResult, update);
+ }
+
@Override
public <T extends CdmBase> void update() {
Collection<T> rootEntities = getRootEntities();
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
/**
* @author cmathew
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
+ */
+ @Override
+ public MergeResult load(MergeResult mergeResult, boolean update) {
+ if(activeSession == null) {
+ return mergeResult;
+ }
+ return activeSession.load(mergeResult, update);
+ }
+
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
*/
return true;
}
-
-
}
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
public interface ICdmEntitySession {
public UpdateResult load(UpdateResult updateResult, boolean update);
+ public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update);
+
public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase);
public <T extends CdmBase> EntityCacherDebugResult debug(Collection<T> cdmBase);
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
public interface ICdmEntitySessionManager {
public abstract UpdateResult load(UpdateResult updateResult, boolean update);
+ public abstract MergeResult load(MergeResult mergeResult, boolean update);
+
public abstract <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
/**
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
+ */
+ @Override
+ public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
+ return mergeResult;
+ }
+
}
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
+ */
+ @Override
+ public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
+ return mergeResult;
+ }
+
}
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
+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;
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) {
+ return mergeResult;
+ }
+
}