提交 0c15a98b 编写于 作者: J Joram Barrez

Giving PersistentObjectCache methods consistent names

上级 c437978f
......@@ -60,7 +60,7 @@ import org.activiti.engine.impl.context.Context;
import org.activiti.engine.impl.db.upgrade.DbUpgradeStep;
import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.engine.impl.interceptor.Session;
import org.activiti.engine.impl.persistence.cache.CachedObject;
import org.activiti.engine.impl.persistence.cache.CachedPersistentObject;
import org.activiti.engine.impl.persistence.cache.PersistentObjectCache;
import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
import org.activiti.engine.impl.persistence.entity.PropertyEntity;
......@@ -163,14 +163,14 @@ public class DbSqlSession implements Session {
}
insertedObjects.get(clazz).add(persistentObject);
persistentObjectCache.cachePut(persistentObject, false);
persistentObjectCache.put(persistentObject, false);
}
// update
// ///////////////////////////////////////////////////////////////////
public void update(PersistentObject persistentObject) {
persistentObjectCache.cachePut(persistentObject, false);
persistentObjectCache.put(persistentObject, false);
}
public int update(String statement, Object parameters) {
......@@ -454,7 +454,7 @@ public class DbSqlSession implements Session {
@SuppressWarnings("unchecked")
public <T extends PersistentObject> T selectById(Class<T> entityClass, String id) {
T persistentObject = persistentObjectCache.cacheGet(entityClass, id);
T persistentObject = persistentObjectCache.findInCache(entityClass, id);
if (persistentObject != null) {
return persistentObject;
}
......@@ -464,7 +464,7 @@ public class DbSqlSession implements Session {
if (persistentObject == null) {
return null;
}
persistentObjectCache.cachePut(persistentObject, true);
persistentObjectCache.put(persistentObject, true);
return persistentObject;
}
......@@ -493,11 +493,11 @@ public class DbSqlSession implements Session {
* cache.
*/
protected PersistentObject cacheFilter(PersistentObject persistentObject) {
PersistentObject cachedPersistentObject = persistentObjectCache.cacheGet(persistentObject.getClass(), persistentObject.getId());
PersistentObject cachedPersistentObject = persistentObjectCache.findInCache(persistentObject.getClass(), persistentObject.getId());
if (cachedPersistentObject != null) {
return cachedPersistentObject;
}
persistentObjectCache.cachePut(persistentObject, true);
persistentObjectCache.put(persistentObject, true);
return persistentObject;
}
......@@ -665,11 +665,11 @@ public class DbSqlSession implements Session {
public List<PersistentObject> getUpdatedObjects() {
List<PersistentObject> updatedObjects = new ArrayList<PersistentObject>();
Map<Class<?>, Map<String, CachedObject>> cachedObjects = persistentObjectCache.getAllCachedObjects();
Map<Class<?>, Map<String, CachedPersistentObject>> cachedObjects = persistentObjectCache.getAllCachedPersistentObjects();
for (Class<?> clazz : cachedObjects.keySet()) {
Map<String, CachedObject> classCache = cachedObjects.get(clazz);
for (CachedObject cachedObject : classCache.values()) {
Map<String, CachedPersistentObject> classCache = cachedObjects.get(clazz);
for (CachedPersistentObject cachedObject : classCache.values()) {
PersistentObject persistentObject = cachedObject.getPersistentObject();
if (!isPersistentObjectToBeDeleted(persistentObject)) {
......
......@@ -709,7 +709,7 @@ public class DefaultHistoryManager extends AbstractManager implements HistoryMan
@Override
public void recordVariableUpdate(VariableInstanceEntity variable) {
if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) {
HistoricVariableInstanceEntity historicProcessVariable = getPersistentObjectCache().cacheGet(HistoricVariableInstanceEntity.class, variable.getId());
HistoricVariableInstanceEntity historicProcessVariable = getPersistentObjectCache().findInCache(HistoricVariableInstanceEntity.class, variable.getId());
if (historicProcessVariable == null) {
historicProcessVariable = Context.getCommandContext().getHistoricVariableInstanceEntityManager().findHistoricVariableInstanceByVariableInstanceId(variable.getId());
}
......@@ -912,7 +912,7 @@ public class DefaultHistoryManager extends AbstractManager implements HistoryMan
public void recordVariableRemoved(VariableInstanceEntity variable) {
if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) {
HistoricVariableInstanceEntity historicProcessVariable = getPersistentObjectCache()
.cacheGet(HistoricVariableInstanceEntity.class, variable.getId());
.findInCache(HistoricVariableInstanceEntity.class, variable.getId());
if (historicProcessVariable == null) {
historicProcessVariable = Context.getCommandContext()
.getHistoricVariableInstanceEntityManager()
......
......@@ -17,7 +17,7 @@ import org.activiti.engine.impl.db.PersistentObject;
/**
* @author Joram Barrez
*/
public class CachedObject {
public class CachedPersistentObject {
/**
* The actual {@link PersistentObject} instance.
......@@ -25,13 +25,13 @@ public class CachedObject {
protected PersistentObject persistentObject;
/**
* Represents the 'persistence state' at the moment this {@link CachedObject} instance was created.
* Represents the 'persistence state' at the moment this {@link CachedPersistentObject} instance was created.
* It is used later on to determine if a {@link PersistentObject} has been updated, by comparing
* the 'persistent state' at that moment with this instance here.
*/
protected Object originalPersistentState;
public CachedObject(PersistentObject persistentObject, boolean storeState) {
public CachedPersistentObject(PersistentObject persistentObject, boolean storeState) {
this.persistentObject = persistentObject;
if (storeState) {
this.originalPersistentState = persistentObject.getPersistentState();
......
......@@ -27,18 +27,48 @@ import org.activiti.engine.impl.interceptor.Session;
*/
public interface PersistentObjectCache extends Session {
Map<Class<?>, Map<String, CachedObject>> getAllCachedObjects();
/**
* Returns all cached {@link PersistentObject} instances as a map
* with following structure: { entityClassName, {entityId, PersistentObject} }
*/
Map<Class<?>, Map<String, CachedPersistentObject>> getAllCachedPersistentObjects();
<T> T cacheGet(Class<T> entityClass, String id);
/**
* Adds the gives {@link PersistentObject} to the cache.
*
* @param persistentObject The {@link PersistentObject} instance
* @param storeState If true, the current state {@link PersistentObject#getPersistentState()} will be stored for future diffing.
*/
CachedPersistentObject put(PersistentObject persistentObject, boolean storeState);
CachedObject cachePut(PersistentObject persistentObject, boolean storeState);
/**
* Returns the cached {@link PersistentObject} instance of the given class with the provided id.
* Returns null if such a {@link PersistentObject} cannot be found.
*/
<T> T findInCache(Class<T> entityClass, String id);
/**
* Returns all cached {@link PersistentObject} instances of a given type.
* Returns an empty list if no instances of the given type exist.
*/
<T> List<T> findInCache(Class<T> entityClass);
/**
* Returns all cached {@link PersistentObject} instances of a given types.
* Returns an empty list if no instances of the given type exist.
*/
<T> List<T> findInCache(List<Class<T>> entityClasses);
<T> List<T> findInCache(Class<T> entityClass);
<T> Collection<CachedObject> findInCacheAsCachedObjects(Class<T> entityClass);
/**
* Returns all {@link CachedPersistentObject} instances for the given type.
* The difference with {@link #findInCache(Class)} is that here the whole {@link CachedPersistentObject}
* is returned, which gives access to the persistent state at the moment of putting it in the cache.
*/
<T> Collection<CachedPersistentObject> findInCacheAsCachedObjects(Class<T> entityClass);
/**
* Removes the {@link PersistentObject} of the given type with the given id from the cache.
*/
void cacheRemove(Class<?> persistentObjectClass, String persistentObjectId);
}
......@@ -26,25 +26,25 @@ import org.activiti.engine.impl.db.PersistentObject;
*/
public class PersistentObjectCacheImpl implements PersistentObjectCache {
protected Map<Class<?>, Map<String, CachedObject>> cachedObjects = new HashMap<Class<?>, Map<String,CachedObject>>();
protected Map<Class<?>, Map<String, CachedPersistentObject>> cachedObjects = new HashMap<Class<?>, Map<String,CachedPersistentObject>>();
@Override
public CachedObject cachePut(PersistentObject persistentObject, boolean storeState) {
Map<String, CachedObject> classCache = cachedObjects.get(persistentObject.getClass());
public CachedPersistentObject put(PersistentObject persistentObject, boolean storeState) {
Map<String, CachedPersistentObject> classCache = cachedObjects.get(persistentObject.getClass());
if (classCache == null) {
classCache = new HashMap<String, CachedObject>();
classCache = new HashMap<String, CachedPersistentObject>();
cachedObjects.put(persistentObject.getClass(), classCache);
}
CachedObject cachedObject = new CachedObject(persistentObject, storeState);
CachedPersistentObject cachedObject = new CachedPersistentObject(persistentObject, storeState);
classCache.put(persistentObject.getId(), cachedObject);
return cachedObject;
}
@Override
@SuppressWarnings("unchecked")
public <T> T cacheGet(Class<T> entityClass, String id) {
CachedObject cachedObject = null;
Map<String, CachedObject> classCache = cachedObjects.get(entityClass);
public <T> T findInCache(Class<T> entityClass, String id) {
CachedPersistentObject cachedObject = null;
Map<String, CachedPersistentObject> classCache = cachedObjects.get(entityClass);
if (classCache != null) {
cachedObject = classCache.get(id);
}
......@@ -56,7 +56,7 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
@Override
public void cacheRemove(Class<?> persistentObjectClass, String persistentObjectId) {
Map<String, CachedObject> classCache = cachedObjects.get(persistentObjectClass);
Map<String, CachedPersistentObject> classCache = cachedObjects.get(persistentObjectClass);
if (classCache == null) {
return;
}
......@@ -64,8 +64,8 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
}
@Override
public <T> Collection<CachedObject> findInCacheAsCachedObjects(Class<T> entityClass) {
Map<String, CachedObject> classCache = cachedObjects.get(entityClass);
public <T> Collection<CachedPersistentObject> findInCacheAsCachedObjects(Class<T> entityClass) {
Map<String, CachedPersistentObject> classCache = cachedObjects.get(entityClass);
if (classCache != null) {
return classCache.values();
}
......@@ -75,10 +75,10 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
@Override
@SuppressWarnings("unchecked")
public <T> List<T> findInCache(Class<T> entityClass) {
Map<String, CachedObject> classCache = cachedObjects.get(entityClass);
Map<String, CachedPersistentObject> classCache = cachedObjects.get(entityClass);
if (classCache != null) {
List<T> entities = new ArrayList<T>(classCache.size());
for (CachedObject cachedObject : classCache.values()) {
for (CachedPersistentObject cachedObject : classCache.values()) {
entities.add((T) cachedObject.getPersistentObject());
}
return entities;
......@@ -92,12 +92,12 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
List<T> entities = null;
for (Class<T> entityClass : entityClasses) {
Map<String, CachedObject> classCache = cachedObjects.get(entityClass);
Map<String, CachedPersistentObject> classCache = cachedObjects.get(entityClass);
if (classCache != null) {
if (entities == null) {
entities = new ArrayList<T>(classCache.size());
}
for (CachedObject cachedObject : classCache.values()) {
for (CachedPersistentObject cachedObject : classCache.values()) {
entities.add((T) cachedObject.getPersistentObject());
}
}
......@@ -110,7 +110,7 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
return Collections.emptyList();
}
public Map<Class<?>, Map<String, CachedObject>> getAllCachedObjects() {
public Map<Class<?>, Map<String, CachedPersistentObject>> getAllCachedPersistentObjects() {
return cachedObjects;
}
......
......@@ -12,7 +12,7 @@ import org.activiti.engine.impl.context.Context;
import org.activiti.engine.impl.db.PersistentObject;
import org.activiti.engine.impl.persistence.AbstractManager;
import org.activiti.engine.impl.persistence.CachedPersistentObjectMatcher;
import org.activiti.engine.impl.persistence.cache.CachedObject;
import org.activiti.engine.impl.persistence.cache.CachedPersistentObject;
/**
* @author Joram Barrez
......@@ -108,7 +108,7 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
if (checkCache) {
Collection<CachedObject> cachedObjects = getPersistentObjectCache().findInCacheAsCachedObjects(getManagedPersistentObject());
Collection<CachedPersistentObject> cachedObjects = getPersistentObjectCache().findInCacheAsCachedObjects(getManagedPersistentObject());
if ( (cachedObjects != null && cachedObjects.size() > 0) || getManagedPersistentObjectSubClasses() != null) {
......@@ -121,7 +121,7 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
// Cache entities
if (cachedObjects != null) {
for (CachedObject cachedObject : cachedObjects) {
for (CachedPersistentObject cachedObject : cachedObjects) {
Entity cachedEntity = (Entity) cachedObject.getPersistentObject();
if (retainEntityCondition.isRetained(cachedEntity)) {
entityMap.put(cachedEntity.getId(), cachedEntity); // will overwite db version with newer version
......@@ -131,9 +131,9 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
if (getManagedPersistentObjectSubClasses() != null) {
for (Class<? extends Entity> entitySubClass : getManagedPersistentObjectSubClasses()) {
Collection<CachedObject> subclassCachedObjects = getPersistentObjectCache().findInCacheAsCachedObjects(entitySubClass);
Collection<CachedPersistentObject> subclassCachedObjects = getPersistentObjectCache().findInCacheAsCachedObjects(entitySubClass);
if (subclassCachedObjects != null) {
for (CachedObject subclassCachedObject : subclassCachedObjects) {
for (CachedPersistentObject subclassCachedObject : subclassCachedObjects) {
Entity cachedSubclassEntity = (Entity) subclassCachedObject.getPersistentObject();
if (retainEntityCondition.isRetained(cachedSubclassEntity)) {
entityMap.put(cachedSubclassEntity.getId(), cachedSubclassEntity); // will overwite db version with newer version
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册