001 /*
002 * Created on 26.03.2004
003 */
004 package de.fub.tip.datenanzeige.container;
005
006 import java.util.Iterator;
007 import java.util.Vector;
008
009 import org.apache.log4j.Logger;
010
011 import de.fub.tip.datenanzeige.Container;
012 import de.fub.tip.datenanzeige.ContainerInhalt;
013 import de.fub.tip.datenanzeige.ormapper.EventVO;
014
015 /**
016 * Sinn:
017 * stellt zur Anzeige <code>EventVO</code>-Objekte
018 * zur Verfügung,
019 * die von einer Logik erzeugt wurden und angezeigt werden sollen.
020 * <br>
021 * <b>Der Container kann nur lesend benutzt werden!</b>
022 *
023 * @author hirsch, 26.03.2004
024 * @version 2003-03-30
025 * $Id: EreignishistorieneintragVOContainer.java,v 1.6 2004/04/30 14:26:30 hirsch Exp $
026 */
027 public class EreignishistorieneintragVOContainer implements Container {
028 /** eigener Logger zwecks Fehlersuche */
029 private static Logger logger =
030 Logger.getLogger(EreignishistorieneintragVOContainer.class);
031 /** eigentlicher ContainerInhalt */
032 private Vector inhalt = null;
033 /** zum vereinfachenden Zugriff die Daten */
034 private Iterator iterator = null;
035
036 /**
037 * erzeugt den Container, so dass mit add() Elemente
038 * hinzugefügt werden können
039 */
040 public EreignishistorieneintragVOContainer() {
041 logger.debug("EreignishistorieneintragVOContainer startet...");
042 this.inhalt = new Vector();
043 iterator = this.inhalt.iterator();
044 } // end of Konstruktor
045
046
047 /**
048 * fügt dem Container ein neues EventVO Objekt hinzu<br>
049 * Der interne Iterator wird dabei initialisiert, um eine
050 * Ausnahme zu vermeiden.
051 *
052 * @param event EventVO
053 */
054 public void add(EventVO event) {
055 this.inhalt.add(event);
056 // sonst wird eine ConcurrentModificationException geworfen!
057 this.iterator = this.inhalt.iterator();
058 } // end of add
059
060 /**
061 * @see de.fub.tip.datenanzeige.Container#nextVO()
062 */
063 public ContainerInhalt nextVO() {
064 // wenn Daten Sch* sind, kann ClassCastException kommen
065 return (ContainerInhalt) this.iterator.next();
066 } // end of nextVO
067
068 /**
069 * @see java.util.Iterator#remove()
070 * @throws UnsupportedOperationException wenn aufgerufen,
071 * da nur lesende Zugriffe möglich sind
072 */
073 public void remove() {
074 throw new UnsupportedOperationException(
075 "EreignishistoreneintragVOContainer nur lesbar! " +
076 "kein remove() möglich.");
077 } // end of remove
078
079 /**
080 * @see java.util.Iterator#hasNext()
081 */
082 public boolean hasNext() {
083 return this.iterator.hasNext();
084 } // end of hasNext
085
086 /**
087 * @see java.util.Iterator#next()
088 */
089 public Object next() {
090 return this.iterator.next();
091 } // end of next
092
093 /**
094 * gibt die aktuelle Anzahl der Elemente im Container zurück
095 * @return containerElementGroesse
096 */
097 public int size() {
098 return this.inhalt.size();
099 } // end of size
100 } // end of class
|