SightGruppeVOContainer.java
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 (ContainerInhaltthis.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