001 /*
002 * Created on 17.04.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.SightGruppeVO;
014
015 /**
016 * Sinn:
017 * stellt zur Anzeige <code>SightGruppeVO</code>-
018 * Objekte 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, 17.04.2004
024 * @version 2004-04-20
025 * $Id: SightGruppeVOContainer.java,v 1.6 2004/04/30 14:26:30 hirsch Exp $
026 *
027 */
028 public class SightGruppeVOContainer implements Container {
029 /** eigener Logger zwecks Fehlersuche */
030 private static Logger logger =
031 Logger.getLogger(SightGruppeVOContainer.class);
032 /** eigentlicher ContainerInhalt */
033 private Vector inhalt = null;
034 /** zum vereinfachenden Zugriff die Daten */
035 private Iterator iterator = null;
036
037 /**
038 * erzeugt den Container, so dass mit add() Elemente
039 * hinzugefügt werden können
040 */
041 public SightGruppeVOContainer() {
042 logger.debug("SightGruppeVOContainer startet...");
043 this.inhalt = new Vector();
044 this.iterator = this.inhalt.iterator();
045 } // end of Konstruktor
046
047 /**
048 * @see de.fub.tip.datenanzeige.Container#nextVO()
049 */
050 public ContainerInhalt nextVO() {
051 // wenn Daten Sch* sind, kann ClassCastException kommen
052 return (ContainerInhalt) this.iterator.next();
053 } // end of nextVO
054
055 /**
056 * @see java.util.Iterator#remove()
057 * @throws UnsupportedOperationException wenn aufgerufen,
058 * da nur lesende Zugriffe möglich sind
059 */
060 public void remove() {
061 throw new UnsupportedOperationException(
062 "EreignishistoreneintragVOContainer nur lesbar! " +
063 "kein remove() möglich.");
064 } // end of remove
065
066 /**
067 * @see java.util.Iterator#hasNext()
068 */
069 public boolean hasNext() {
070 return this.iterator.hasNext();
071 } // end of hasNext
072
073 /**
074 * @see java.util.Iterator#next()
075 */
076 public Object next() {
077 return this.iterator.next();
078 } // end of next
079
080 /**
081 * fügt dem Container ein neues EventVO Objekt hinzu<br>
082 * Der interne Iterator wird dabei initialisiert, um eine
083 * Ausnahme zu vermeiden.
084 *
085 * @param sgruppe SightGruppeVO
086 */
087 public void add(SightGruppeVO sgruppe) {
088 this.inhalt.add(sgruppe);
089 // sonst wird eine ConcurrentModificationException geworfen!
090 this.iterator = this.inhalt.iterator();
091 } // end of add
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
101 /**
102 * gibt den Container als Vectordarstellung zurück -
103 * zum testen mit den elendigen MultiBoxSachen ....
104 * 2004-04-26
105 * @return Vectordarstellung des Containers
106 */
107 public Vector getVector() {
108 return this.inhalt;
109 } // end of getVector
110 } // end of class
|