2 * put your module comment here
11 import freemarker.template.*;
18 * abstrakte Containerklasse für Listen von Entities.
23 public class EntityList implements TemplateListModel {
25 private static Logfile theLog;
26 private ArrayList theEntityArrayList;
27 private String whereClause;
28 private String orderClause;
31 private int offsetnext = -1;
32 private int offsetprev = -1;
33 private int freemarkerListPointer=-1;
37 theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Entity.Logfile"));
41 * Konstruktor für leere Liste von Entities
44 this.theEntityArrayList = new ArrayList();
48 * Setzt die WhereClause, mit der die Entitis dieser Liste geholt wurden.
51 public void setWhere(String wc) {
52 this.whereClause = wc;
56 * Liefert die WhereClause zurueck, mit der die Entities geholt wurden.
59 public String getWhere() {
64 * Setzt das Sortierkriterium fest, mit der die Entities in die Liste
69 public void setOrder(String oc) {
70 this.orderClause = oc;
74 * Liefert das Sortierkriterium der Liste zurueck.
77 public String getOrder() {
82 * Setzt die Anzahl der Datensätze fest, die WhereClause erfüllen.
85 public void setCount(int i) {
90 * Liefert Anzahle der Datensätze, die WhereClause erfüllen.
93 public int getCount() {
98 * Setzt den Offset fest.
101 public void setOffset(int i) {
106 * Liefert den Offset zurueck
109 public int getOffset() {
114 * Setzt den offset für das naechste Batch von Entities fest.
117 public void setNextBatch(int i) {
122 * Liefert den offset für das naechste Batch von Entities
123 * @return offset für naechstes Batch
125 public int getNextBatch() {
130 * Fragt ab, ob es noch nachfolgendes Batch innerhalb der WhereClause gibt
133 public boolean hasNextBatch() {
134 return (offsetnext >= 0);
138 * Setzt offset des vorhergehenden Batches fest.
141 public void setPrevBatch(int i) {
146 * Liefert offset des vorhergehenden Batches zurueck.
147 * @return offset des vorhergehenden Batches.
149 public int getPrevBatch() {
154 * Fragt ab, ob es ein vorhergehendes Batch gibt
155 * @return true wenn ja, sont false
157 public boolean hasPrevBatch() {
158 return (offsetprev >= 0);
162 * Liefert den Startindex des Batches zurueck.
165 public int getFrom() {
170 * Liefert den Endindex des Batches zurueck.
181 * Fügt eine Entity in die Liste ein
184 public void add (Entity anEntity) {
186 theEntityArrayList.add(anEntity);
188 theLog.printWarning("EntityList: add called with empty Entity");
192 * @return Anzahl der Entities in der Liste
195 return theEntityArrayList.size();
199 public Entity elementAt(int i) {
200 /** @todo check if i is in list.size() */
201 return (Entity)theEntityArrayList.get(i);
205 // Freemarker TemplateListModel methods
207 public TemplateModel get(int i){
208 theLog.printDebugInfo("EntityList: get " +i );
211 public boolean isRewound() {
212 theLog.printDebugInfo("EntityList: isrewound");
213 return (freemarkerListPointer==-1) ? true : false;
215 public void rewind() {
216 theLog.printDebugInfo("EntityList: rewind");
217 freemarkerListPointer=-1; }
219 public TemplateModel next() {
220 theLog.printDebugInfo("EntityList: next");
222 freemarkerListPointer++;return get(freemarkerListPointer); }
226 public boolean hasNext() {
227 theLog.printDebugInfo("EntityList: hasnext");
228 return theEntityArrayList.size()>0 && freemarkerListPointer+2<=theEntityArrayList.size();
231 public boolean isEmpty() {
232 theLog.printDebugInfo("EntityList: isempty");
233 if (theEntityArrayList!=null)
234 return theEntityArrayList.size()<1 ;