X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fentity%2FEntityList.java;h=81e64fd4dd412a0c92266b908b4812dc15cdeafa;hb=19e43122d238202f5026ae776893305bdcdafc7c;hp=bf41e8ff721be72da85df92ccce707ffe91d4759;hpb=c6a2204d8d75293256fd17c07e54971d7672359a;p=mir.git diff --git a/source/mir/entity/EntityList.java b/source/mir/entity/EntityList.java index bf41e8ff..81e64fd4 100755 --- a/source/mir/entity/EntityList.java +++ b/source/mir/entity/EntityList.java @@ -1,38 +1,65 @@ /* - * The former (German) documentation of this classe - * stated that this class is an abstract one. There is, - * however, not a single abstract method in this class. + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. */ - package mir.entity; -import java.lang.*; -import java.util.*; - -import freemarker.template.*; +import java.lang.*; +import java.util.*; -import mir.misc.*; +import freemarker.template.*; +import mir.misc.*; +import mir.storage.*; +import mir.storage.store.*; /** * * Container class for lists of Entities. + * Now implements freemarker.template.TemplateListModel + * and @see mir.storage.store.StorableObject. * * @author - * @version 27.6.1999 + * first version 27.6.1999 + * + * @version 1.0 (freemarker compliant & and storable in ObjectStore) */ -public class EntityList implements TemplateListModel { +public class EntityList implements TemplateListModel, StorableObject { - private static Logfile theLog; - private ArrayList theEntityArrayList; - private String whereClause; - private String orderClause; - private int count; - private int offset; - private int offsetnext = -1; - private int offsetprev = -1; - private int freemarkerListPointer=-1; + private static Logfile theLog; + private ArrayList theEntityArrayList = new ArrayList(); + private String whereClause, orderClause; + private StorageObject theStorage; + private int count, offset, limit; + private int offsetnext = -1, offsetprev = -1; + private int freemarkerListPointer=-1; static { @@ -40,12 +67,15 @@ public class EntityList implements TemplateListModel { } /** - * Constructor. Creates an empty EntityList + * Constructor. */ - public EntityList(){ - this.theEntityArrayList = new ArrayList(); - } + public EntityList(){ } + /* get/set EntityClass of Objects stored in EntityList */ + public void setStorage(StorageObject storage) { this.theStorage=storage; } + public StorageObject getStorage() { return theStorage; } + + public void setLimit(int limit) { this.limit = limit; } /** * Sets the WHERE clause that fetched the Entities of this EntityList from the database. @@ -130,7 +160,7 @@ public class EntityList implements TemplateListModel { /** * Returns whether there is a next batch within the WHERE clause - * @return true if yes, false if no. + * @return true if yes, false if no. */ public boolean hasNextBatch() { return (offsetnext >= 0); @@ -183,7 +213,7 @@ public class EntityList implements TemplateListModel { * Inserts an Entity into the EntityList. * @param anEntity The entity to be inserted. */ - + public void add (Entity anEntity) { if (anEntity!=null) theEntityArrayList.add(anEntity); @@ -195,7 +225,7 @@ public class EntityList implements TemplateListModel { /** * @return The number of Entities in the EntityList. */ - + public int size() { return theEntityArrayList.size(); } @@ -249,4 +279,20 @@ public class EntityList implements TemplateListModel { else return false; } + + // Methods to implement StorableObject + + public Set getNotifyOnReleaseSet() { return null; } + + public StoreIdentifier getStoreIdentifier() { + if ( theStorage!=null ) { + return + new StoreIdentifier( this, StoreContainerType.STOC_TYPE_ENTITYLIST, + StoreUtil.getEntityListUniqueIdentifierFor( theStorage.getTableName(), + whereClause, orderClause, offset, limit )); + } + theLog.printWarning("EntityList could not return StoreIdentifier"); + return null; + } + }