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