[Joafip-svn] SF.net SVN: joafip:[2909] trunk/joafip
Brought to you by:
luc_peuvrier
|
From: <luc...@us...> - 2011-09-30 01:09:57
|
Revision: 2909
http://joafip.svn.sourceforge.net/joafip/?rev=2909&view=rev
Author: luc_peuvrier
Date: 2011-09-30 01:09:49 +0000 (Fri, 30 Sep 2011)
Log Message:
-----------
added import listener
Modified Paths:
--------------
trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java
trunk/joafip/src/test/resources/log4j.properties
Added Paths:
-----------
trunk/joafip/doc/current.txt
trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java
Added: trunk/joafip/doc/current.txt
===================================================================
--- trunk/joafip/doc/current.txt (rev 0)
+++ trunk/joafip/doc/current.txt 2011-09-30 01:09:49 UTC (rev 2909)
@@ -0,0 +1,7 @@
+108738, 118200, 132948, 142808, 165872
+
+ 1 1010 1000 1100 0010
+ 1 1100 1101 1011 1000
+ 10 0000 0111 0101 0100
+1 0100 0010 1000 0000 1000
+ 10 1000 0111 1111 0000
\ No newline at end of file
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/FilePersistence.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -54,6 +54,7 @@
import net.sf.joafip.store.service.StoreInvalidClassException;
import net.sf.joafip.store.service.StoreNotSerializableException;
import net.sf.joafip.store.service.StoreTooBigForSerializationException;
+import net.sf.joafip.store.service.export_import.in.IImportListener;
import net.sf.joafip.store.service.objectio.manager.ISubsituteSynchronizer;
import net.sf.joafip.store.service.objectio.serialize.input.IObjectInput;
import net.sf.joafip.store.service.objectio.serialize.output.IObjectOutput;
@@ -1755,6 +1756,11 @@
}
}
+ @Override
+ public void setImportListener(final IImportListener listener) {
+ store.setImportListener(listener);
+ }
+
/**
* assert there is no object stored
*
Modified: trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/service/IFilePersistence.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -30,6 +30,7 @@
import net.sf.joafip.heapfile.record.entity.DataRecordIdentifier;
import net.sf.joafip.store.entity.classinfo.ClassInfo;
import net.sf.joafip.store.service.IGarbageListener;
+import net.sf.joafip.store.service.export_import.in.IImportListener;
import net.sf.joafip.store.service.export_import.out.IExporterListener;
import net.sf.joafip.store.service.objectio.manager.ISubsituteSynchronizer;
import net.sf.joafip.store.service.objectio.manager.ISubstituteObjectManager;
@@ -665,6 +666,8 @@
void storedMutableEnum(Class<? extends Enum<?>>[] enumClasses)
throws FilePersistenceException;
+ void setImportListener(IImportListener listener);
+
/**
* declare persisted mutable enum by its class<br>
* (PROPS) can be set using properties file see
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-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/AbstractDelegatingToStoreManagers.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -52,6 +52,7 @@
import net.sf.joafip.store.service.copier.CopierException;
import net.sf.joafip.store.service.copier.DeepCopier;
import net.sf.joafip.store.service.copier.ToProxyDeepCopier;
+import net.sf.joafip.store.service.export_import.in.IImportListener;
import net.sf.joafip.store.service.export_import.in.IImporter;
import net.sf.joafip.store.service.export_import.in.ImportClassNotFoundException;
import net.sf.joafip.store.service.export_import.in.ImportDataCorruptedException;
@@ -514,6 +515,11 @@
}
@Override
+ public void setImportListener(final IImportListener listener) {
+ xmlImporter.setListener(listener);
+ }
+
+ @Override
public int getCurrentDataModelIdentifier() {
return currentDataModelIdentifier;
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/IStore.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -44,6 +44,7 @@
import net.sf.joafip.store.service.conversion.def.ConversionManager;
import net.sf.joafip.store.service.copier.CopierException;
import net.sf.joafip.store.service.copier.IDeepCopyServiceDelegate;
+import net.sf.joafip.store.service.export_import.in.IImportListener;
import net.sf.joafip.store.service.export_import.out.IExporterListener;
import net.sf.joafip.store.service.garbage.GarbageManager;
import net.sf.joafip.store.service.garbage.recordmgr.LinkRecordManager;
@@ -668,6 +669,8 @@
StoreClassNotFoundException, StoreInvalidClassException,
StoreDataCorruptedException, StoreNotSerializableException;
+ void setImportListener(IImportListener listener);
+
Object newProxyInstance(Object object) throws StoreException;
Object newProxyInstance(Class<?> objectClass, Class<?>[] parameterTypes,
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/AbstractImporter.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -123,6 +123,10 @@
private final int currentDataModelIdentifier;
+ private long numberOfImported;
+
+ private IImportListener listener;
+
public AbstractImporter(final IStore store) throws ImportException {
super();
try {
@@ -144,6 +148,11 @@
}
}
+ @Override
+ public void setListener(final IImportListener listener) {
+ this.listener = listener;
+ }
+
public ClassInfoFactory getClassInfoFactory() {
return classInfoFactory;
}
@@ -152,6 +161,7 @@
public void doImport(final String directoryName) throws ImportException,
ImportClassNotFoundException, ImportDataCorruptedException,
ImportInvalidClassException, ImportNotSerializableException {
+ numberOfImported=0;
final File directory = new File(directoryName);
if (directory.exists()) {
if (!directory.isDirectory()) {
@@ -228,69 +238,6 @@
}
}
- // /**
- // * Sets the field represented by this field object knew by its name on the
- // * specified object argument to the specified new value.
- // *
- // * @param object
- // * the object that own the field
- // * @param objectOwningFieldDef
- // * information on object owning field
- // * @param originalFieldName
- // * the new value for the field knew by its name of
- // * <code>object</code> being modified
- // * @param conversionFieldClassDef
- // * @param value
- // * the new value for the field of <code>object</code> being
- // * modified
- // * @throws ImportException
- // */
- // protected void setObjectField(final Object object,
- // final ConversionClassDef objectOwningFieldDef,
- // final String originalFieldName,
- // final ConversionClassDef conversionFieldClassDef,
- // final ConversionClassDef conversionFieldDeclaringClassDef,
- // final Object value) throws ImportException {
- // final ClassInfo fieldClassInfo =
- // conversionFieldClassDef.getOriginalClassInfo();
- // final FieldReplacementDef replacementFieldDef = replacementFieldName(
- // objectOwningFieldDef.getClassName(), originalFieldName,
- // fieldClassInfo.getName());
- // final String fieldName = replacementFieldDef.getFieldName();
- // if (!"".equals(fieldName)) {
- // /*
- // * not a deleted field
- // */
- // final Class<? extends Object> currentClass;
- // try {
- // final ObjectIoReplacementDef replacementDef;
- // if (conversionFieldDeclaringClassDef == null) {
- // currentClass=objectOwningFieldDef.getFinalClassInfo().getClass();
- // } else {
- // currentClass=conversionFieldDeclaringClassDef.getFinalClassInfo().getClass();
- // }
- //
- // } catch (ConversionException exception) {
- // throw new ImportException(exception);
- // }
- // // final Class<? extends Object> currentClass=object.getClass();
- // final Field field = searchField(currentClass, fieldName);
- // try {
- // //setFieldAccessible.set(field);
- // field.set(object, value);
- // } catch (IllegalArgumentException exception) {
- // throw new ImportException(setFieldMessage(object, field,
- // originalFieldName, value), exception);
- // } catch (IllegalAccessException exception) {
- // throw new ImportException(setFieldMessage(object, field,
- // originalFieldName, value), exception);
- // } catch (SecurityException exception) {
- // throw new ImportException(setFieldMessage(object, field,
- // originalFieldName, value), exception);
- // }
- // }
- // }
-
@SuppressWarnings("unused")
private String setFieldMessage(final Object object, final Field field,
final String originalFieldName, final Object value) {
@@ -1038,6 +985,7 @@
try {
storeSaver.setRootOfObjectsToSave(object);
storeSaver.saveForImport(/* object, */dummyObjectSet);
+ notifyImported();
objectIOManager.clearObjectState();
} catch (final StoreException exception) {
throw new ImportException(exception);
@@ -1058,6 +1006,13 @@
dummyObjectSet.clear();
}
+ private void notifyImported() {
+ numberOfImported+=storeSaver.getNumberOfModified();
+ if( listener!=null) {
+ listener.numberOfImported(numberOfImported);
+ }
+ }
+
/**
* record class static field
*
@@ -1083,6 +1038,7 @@
dataRecordIdentifier);
storeSaver.setRootOfObjectsToSave(null);
storeSaver.saveForImport(/* null, */dummyObjectSet);
+ notifyImported();
objectIOManager.clearObjectState();
} catch (final ObjectIOException exception) {
Added: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java (rev 0)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImportListener.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -0,0 +1,34 @@
+/*
+ * 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.export_import.in;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public interface IImportListener {
+
+ void numberOfImported(long numberOfImported);
+
+}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/IImporter.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -29,6 +29,8 @@
*/
public interface IImporter {
+ void setListener(IImportListener listener);
+
/**
* import from exported data in <code>directoryName<code> directory<br>
*
@@ -51,5 +53,4 @@
ImportException, ImportClassNotFoundException,
ImportDataCorruptedException, ImportInvalidClassException,
ImportNotSerializableException;
-
}
Modified: trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java
===================================================================
--- trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/main/java/net/sf/joafip/store/service/export_import/in/XmlImporter.java 2011-09-30 01:09:49 UTC (rev 2909)
@@ -68,6 +68,7 @@
throw new ImportException(exportFile + " does not exists");
}
final SAXParserFactory factory = SAXParserFactory.newInstance();
+ //FIXMELUC _______________why not validating
factory.setValidating(false);
factory.setNamespaceAware(true);
final SchemaFactory schemaFactory = SchemaFactory
Modified: trunk/joafip/src/test/resources/log4j.properties
===================================================================
--- trunk/joafip/src/test/resources/log4j.properties 2011-09-30 01:07:17 UTC (rev 2908)
+++ trunk/joafip/src/test/resources/log4j.properties 2011-09-30 01:09:49 UTC (rev 2909)
@@ -128,6 +128,7 @@
#log4j.logger.net.sf.joafip.service.bug.emis.TestEmis=debug
log4j.logger.net.sf.joafip.performance.items.service.Inserter=info
log4j.logger.net.sf.joafip.performance.items.service.Searcher=info
+log4j.logger.net.sf.joafip.performance.items.service.ImportSearcher=info
log4j.logger.net.sf.joafip.service.MainCrash=info
log4j.logger.net.sf.joafip.service.MainAfterCrash=info
log4j.logger.net.sf.joafip.service.MainWarnDataRecord1=debug
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|