Index: topia/src/java/org/codelutin/topia/persistence/serialization/SerializablePersistenceHelper.java diff -u topia/src/java/org/codelutin/topia/persistence/serialization/SerializablePersistenceHelper.java:1.2 topia/src/java/org/codelutin/topia/persistence/serialization/SerializablePersistenceHelper.java:1.3 --- topia/src/java/org/codelutin/topia/persistence/serialization/SerializablePersistenceHelper.java:1.2 Tue Jun 14 17:03:10 2005 +++ topia/src/java/org/codelutin/topia/persistence/serialization/SerializablePersistenceHelper.java Wed Jun 15 15:14:54 2005 @@ -24,7 +24,7 @@ * Created: 10 juin 2005 * * @author Arnaud Thimel -* @version $Revision: 1.2 $ +* @version $Revision: 1.3 $ */ @@ -37,18 +37,22 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Properties; +import org.codelutin.queryparser.QueryHelperException; import org.codelutin.topia.AsynchronousLoader; import org.codelutin.topia.TopiaContext; import org.codelutin.topia.TopiaEntity; import org.codelutin.topia.TopiaException; import org.codelutin.topia.TopiaQuery; import org.codelutin.topia.persistence.AbstractPersistenceHelper; +import org.codelutin.topia.persistence.TopiaCollectionQueryHelper; import org.codelutin.topia.persistence.jdo.Util; import org.codelutin.util.VersionNumberUtil; @@ -60,7 +64,7 @@ } public void destroy() { - File dbFile = new File(properties.getProperty("topia.persistence.xml.dbfile")); + File dbFile = getPersistenceFile(); ObjectOutputStream output; try { output = new ObjectOutputStream(new FileOutputStream(dbFile)); @@ -85,8 +89,15 @@ printEntities(); } + private File getPersistenceFile() { + String fileName = properties.getProperty("topia.persistence.serializable.dbfile"); + if (fileName == null) + fileName = "db.file"; + return new File(fileName); + } + private void load() { - File dbFile = new File(properties.getProperty("topia.persistence.xml.dbfile")); + File dbFile = getPersistenceFile(); if (dbFile.exists()) { try { ObjectInputStream intput = new ObjectInputStream(new FileInputStream(dbFile)); @@ -159,8 +170,19 @@ * @see org.codelutin.topia.persistence.PersistenceHelper#find(org.codelutin.topia.TopiaQuery) */ public List find(TopiaQuery query) throws TopiaException { - // TODO Arno : Auto-generated method stub - return null; + TopiaCollectionQueryHelper queryHelper = new TopiaCollectionQueryHelper(entities.values()); + List result = null; + try { + queryHelper.setQuery(query.getQueryString()); + queryHelper.addArgs(query.getArgs()); + result = new ArrayList(); + result.addAll(queryHelper.execute()); + } catch (IOException e) { + e.printStackTrace(); + } catch (QueryHelperException e) { + e.printStackTrace(); + } + return result; } /* (non-Javadoc) @@ -194,8 +216,7 @@ * @see org.codelutin.topia.persistence.PersistenceHelper#size(org.codelutin.topia.TopiaQuery) */ public int size(TopiaQuery query) throws TopiaException { - // TODO Arno : Auto-generated method stub - return 0; + return find(query).size(); } /* (non-Javadoc)