[Joafip-svn] SF.net SVN: joafip:[2927] trunk/joafip/src
Brought to you by:
luc_peuvrier
|
From: <luc...@us...> - 2011-10-17 04:43:29
|
Revision: 2927
http://joafip.svn.sourceforge.net/joafip/?rev=2927&view=rev
Author: luc_peuvrier
Date: 2011-10-17 04:43:22 +0000 (Mon, 17 Oct 2011)
Log Message:
-----------
substitution management refactoring
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
Added Paths:
-----------
trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/entity/classinfo/ClassInfo.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -237,9 +237,6 @@
private final Map<Integer, Map<Integer, Deque<ClassReplacementDef>>> conversionMap =
/**/new TreeMap<Integer, Map<Integer, Deque<ClassReplacementDef>>>();
- /** true if this is a class of object kept in memory */
- private boolean keptInMemory;
-
private AbstractConverter binaryConverter;
/** binary form size, -1 for unknown size */
@@ -657,7 +654,7 @@
|| stringType || storeNotLazy
|| storeSerializeAndGZippedInOneRecord
|| storeSerializeAndZippedInOneRecord
- || storeSerializeInOneRecord || keptInMemory;
+ || storeSerializeInOneRecord;
}
private void initializeFieldInfo() throws ClassInfoException {
@@ -1456,8 +1453,6 @@
stringBuilder.append(allDeclaredFieldsForGenericIO);
stringBuilder.append("\nconversionMap=");
stringBuilder.append(conversionMap);
- stringBuilder.append("\nkeptInMemory=");
- stringBuilder.append(keptInMemory);
return stringBuilder.toString();
}
@@ -1587,14 +1582,6 @@
return proxyable;
}
- public void setKeptInMemory() {
- keptInMemory = true;
- }
-
- public boolean isKeptInMemory() {
- return keptInMemory;
- }
-
public void setBinaryConverter(final AbstractConverter binaryConverter) {
this.binaryConverter = binaryConverter;
this.binarySize = binaryConverter.byteSize();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -74,7 +74,6 @@
import net.sf.joafip.store.service.heaprecordable.HeapRecordableException;
import net.sf.joafip.store.service.heaprecordable.HeapRecordableManager;
import net.sf.joafip.store.service.kept.EnumSubstituteManager;
-import net.sf.joafip.store.service.kept.KeptInMemoryObjectManager;
import net.sf.joafip.store.service.objectio.ObjectIOClassNotFoundException;
import net.sf.joafip.store.service.objectio.ObjectIODataCorruptedException;
import net.sf.joafip.store.service.objectio.ObjectIODataRecordNotFoundException;
@@ -156,9 +155,6 @@
private ConversionManager conversionManager;
- private final KeptInMemoryObjectManager keptInMemorySubstituteObjectManager =
- /**/new KeptInMemoryObjectManager();
-
private final EnumSubstituteManager enumSubstituteManager =
/**/new EnumSubstituteManager();
@@ -582,20 +578,17 @@
public void keptInMemory(final String key, final Object object)
throws StoreException {
final Class<? extends Object> objectClass = object.getClass();
- ClassInfo classInfo;
- try {
- classInfo = classInfoFactory.getNoProxyClassInfo(objectClass);
- } catch (final ClassInfoException exception) {
- throw new StoreException(exception);
- }
- // FIXMELUC ___________________not good classInfo.setKeptInMemory()
- classInfo.setKeptInMemory();
setSubstituteObjectManager(objectClass, KeptInMemoryObjectKey.class,
- keptInMemorySubstituteObjectManager);
- keptInMemorySubstituteObjectManager.addObject(key, object);
+ objectIOManager.getKeptInMemorySubstituteObjectManager());
+ objectIOManager.addObject(key, object);
}
@Override
+ public boolean isKeptInMemory(final Object object) {
+ return objectIOManager.isKeptInMemory(object);
+ }
+
+ @Override
public void referencedByPesistedStaticField(
final Class<?> classHavingStaticFieldReferenced)
throws StoreException {
@@ -632,7 +625,7 @@
@Override
public String keyOfObjectKeptInMemory(final Object object) {
- return keptInMemorySubstituteObjectManager.keyOfObject(object);
+ return objectIOManager.keyOfObject(object);
}
@Override
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/AbstractDeepCopy.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -86,6 +86,8 @@
protected transient ClassInfoFactory classInfoFactory;
+ protected transient IDeepCopyServiceDelegate deepCopyServiceDelagate;
+
protected AbstractDeepCopy() {
super();
}
@@ -105,6 +107,7 @@
final boolean forceLoad) throws CopierException {
this.rootSourceObject = rootSourceObject;
this.classInfoFactory = deepCopyServiceDelagate.getClassInfoFactory();
+ this.deepCopyServiceDelagate = deepCopyServiceDelagate;
final IProxyManagerForObjectIO proxyManager2 = deepCopyServiceDelagate
.getProxyManager2();
final Object sourceCopy;
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/DeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -81,7 +81,8 @@
@Override
protected boolean mustBeCopied(final Object objectToCopy,
final ClassInfo classInfo) {
- return true ^ (classInfo.isKeptInMemory() || classInfo.isEnumType());
+ return true ^ (deepCopyServiceDelagate.isKeptInMemory(objectToCopy) || classInfo
+ .isEnumType());
}
@Override
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/IDeepCopyServiceDelegate.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -43,4 +43,6 @@
Object newInstance(Class<?> objectClass);
Object newInstanceNoConstruction(ClassInfo objectClassInfo);
+
+ boolean isKeptInMemory(Object object);
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/copier/ToProxyDeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -167,7 +167,7 @@
protected boolean mustBeCopied(final Object objectToCopy,
final ClassInfo objectToCopyClassInfo) throws CopierException {
try {
- return !(objectToCopyClassInfo.isKeptInMemory()
+ return !(deepCopyServiceDelagate.isKeptInMemory(objectToCopy)
|| objectToCopyClassInfo.isWriteSubstituted()
|| objectToCopyClassInfo.isStoreInOneReccord()
|| objectToCopyClassInfo.isBasicType()
@@ -194,7 +194,7 @@
throw new CopierException("must not copy not loaded proxy");
}
newInstance = sourceObject;
- } else if (sourceObjectClassInfo.isKeptInMemory()
+ } else if (deepCopyServiceDelagate.isKeptInMemory(sourceObject)
|| sourceObjectClassInfo.isSubstituted()
|| sourceObjectClassInfo.isStoreNotLazy()
|| sourceObjectClassInfo.isSubstituted()
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/kept/KeptInMemoryObjectManager.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -59,6 +59,10 @@
}
}
+ public boolean isKeptInMemory(final Object object) {
+ return keyByObjectMap.containsKey(object);
+ }
+
public String keyOfObject(final Object object) {
final KeptInMemoryObjectKey keptInMemoryObjectKey = keyByObjectMap
.get(object);
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerDelegatingToStateMap.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -43,7 +43,7 @@
*/
@NotStorableClass
public abstract class AbstractObjectIOManagerDelegatingToStateMap extends
- AbstractObjectIOManagerIOForObject {
+ AbstractObjectIOManagerKeptInMemory {
private final ObjectStateMgr objectStateMgr = new ObjectStateMgr();
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerIOForObject.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -1130,7 +1130,6 @@
return true;
}
- // FIXMELUC ______________________________________substituteObject
protected ObjectAndPersistInfo substituteObject(
final ObjectAndPersistInfo objectAndPersistInfo)
throws ObjectIOException, ObjectIODataCorruptedException {
Added: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java (rev 0)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/AbstractObjectIOManagerKeptInMemory.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.store.service.objectio.manager;
+
+import net.sf.joafip.store.service.StoreException;
+import net.sf.joafip.store.service.binary.HelperBinaryConversion;
+import net.sf.joafip.store.service.classinfo.ClassInfoFactory;
+import net.sf.joafip.store.service.kept.KeptInMemoryObjectManager;
+import net.sf.joafip.store.service.objectio.ObjectIOException;
+import net.sf.joafip.store.service.proxy.IProxyManagerForObjectIO;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public abstract class AbstractObjectIOManagerKeptInMemory extends
+ AbstractObjectIOManagerIOForObject {
+
+ private final KeptInMemoryObjectManager keptInMemorySubstituteObjectManager =
+ /**/new KeptInMemoryObjectManager();
+
+ public AbstractObjectIOManagerKeptInMemory(
+ final int currentDataModelIdentifier,
+ final IClassNameManager classNameManager, final boolean proxyMode,
+ final ClassInfoFactory classInfoFactory,
+ final HelperBinaryConversion helperBinaryConversion,
+ final IProxyManagerForObjectIO proxyManager2)
+ throws ObjectIOException {
+ super(currentDataModelIdentifier, classNameManager, proxyMode,
+ classInfoFactory, helperBinaryConversion, proxyManager2);
+ }
+
+ public KeptInMemoryObjectManager getKeptInMemorySubstituteObjectManager() {
+ return keptInMemorySubstituteObjectManager;
+ }
+
+ public void addObject(final String key, final Object object)
+ throws StoreException {
+ keptInMemorySubstituteObjectManager.addObject(key, object);
+ }
+
+ public String keyOfObject(final Object object) {
+ return keptInMemorySubstituteObjectManager.keyOfObject(object);
+ }
+
+ public Object originalObject(final Object substitute)
+ throws ObjectIOException {
+ return keptInMemorySubstituteObjectManager.originalObject(substitute);
+ }
+
+ public Object substituteObject(final Object originalObject)
+ throws ObjectIOException {
+ return keptInMemorySubstituteObjectManager
+ .substituteObject(originalObject);
+ }
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return keptInMemorySubstituteObjectManager.isKeptInMemory(object);
+ }
+}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/objectio/manager/SerializerObjectIOManager.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -54,7 +54,7 @@
*/
@NotStorableClass
public class SerializerObjectIOManager extends
- AbstractObjectIOManagerIOForObject {
+ AbstractObjectIOManagerKeptInMemory {
private static final String MUST_NOT_BE_CALLED = "must not be called";
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/copier/AbstractTestDeepCopier.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -331,4 +331,9 @@
throws ObjectIOException {
// no implementation
}
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return false;
+ }
}
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java 2011-10-17 03:49:21 UTC (rev 2926)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/serialize/AbstractObjectIOTest.java 2011-10-17 04:43:22 UTC (rev 2927)
@@ -535,4 +535,9 @@
throws ObjectIOException {
// no implementation
}
+
+ @Override
+ public boolean isKeptInMemory(final Object object) {
+ return false;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|