-// $Id$
/**
* Copyright (C) 2015 EDIT
* European Distributed Institute of Taxonomy
import org.apache.log4j.Logger;
import org.springframework.util.ReflectionUtils;
+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
return (T) load((Map<T,T>)obj, recursive, update);
} else if (obj instanceof Collection) {
return (T) load((Collection<T>)obj, recursive, update);
+ } 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;
return (T) load((Map<T,T>)obj, alreadyVisitedEntities, update);
} else if (obj instanceof Collection) {
return (T) load((Collection<T>)obj, alreadyVisitedEntities, update);
+ } else if (obj instanceof MergeResult) {
+ return (T) loadRecursive((MergeResult)obj, alreadyVisitedEntities, update);
}
return map;
}
- public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
+ public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
Collection<T> loadedCollection;
if(isRecursiveEnabled && recursive) {
}
+ public MergeResult<CdmBase> load(MergeResult<CdmBase> mergeResult, boolean recursive, boolean update) {
+ CdmBase cdmBase = load(mergeResult.getMergedEntity(), recursive, update);
+ load(mergeResult.getNewEntities(), recursive, update);
+ return new MergeResult(cdmBase, mergeResult.getNewEntities());
+ }
+
+ public MergeResult<CdmBase> loadRecursive(MergeResult<CdmBase> mergeResult,List<Object> alreadyVisitedEntities, boolean update) {
+ CdmBase cdmBase = loadRecursive(mergeResult.getMergedEntity(), alreadyVisitedEntities, update);
+ loadRecursive(mergeResult.getNewEntities(), alreadyVisitedEntities, update);
+ return new MergeResult(cdmBase, mergeResult.getNewEntities());
+ }
+
/**
* 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