TopicVOContainer.java
01 /*
02  * Created on 31.03.2004
03  */
04 package de.fub.tip.datenanzeige.container;
05 
06 import java.util.Iterator;
07 import java.util.Vector;
08 
09 import org.apache.log4j.Logger;
10 
11 import de.fub.tip.datenanzeige.Container;
12 import de.fub.tip.datenanzeige.ContainerInhalt;
13 import de.fub.tip.datenanzeige.ormapper.TopicVO;
14 
15 /**
16  * Sinn:
17  * stellt zur Anzeige <code>TopicVO</code>-Objekte zur 
18  * Verfügung, 
19  * die von einer Logik erzeugt wurden und angezeigt werden sollen.
20  <br>
21  <b>Der Container kann nur lesend benutzt werden!</b>
22  
23  @author hirsch, 31.03.2004
24  @version 2004-03-31
25  * $Id: TopicVOContainer.java,v 1.3 2004/04/30 14:26:30 hirsch Exp $
26  
27  */
28 public class TopicVOContainer implements Container {
29   /** eigener Logger zwecks Fehlersuche */
30   private static Logger logger = 
31     Logger.getLogger(TopicVOContainer.class);
32   /** eigentlicher ContainerInhalt */
33   private Vector inhalt = null;
34   /** zum vereinfachenden Zugriff die Daten */
35   private Iterator iterator = null;
36 
37   /**
38    * erzeugt den Container, so dass mit add() Elemente
39    * hinzugefügt werden können
40    */
41   public TopicVOContainer() {
42     logger.debug("TopicVOContainer startet...");
43     this.inhalt = new Vector();
44     iterator = this.inhalt.iterator();
45   // end of Konstruktor
46   
47   /**
48    * fügt dem Container ein neues SightVO Objekt hinzu<br>
49    * Der interne Iterator wird dabei initialisiert, um eine
50    * Ausnahme zu vermeiden.
51    
52    @param topic TopicVO
53    */
54   public void add(TopicVO topic) {
55     this.inhalt.add(topic);
56     // sonst wird eine ConcurrentModificationException geworfen!
57     this.iterator = this.inhalt.iterator();
58   // end of add
59 
60   /**
61    @see de.fub.tip.datenanzeige.Container#nextVO()
62    */
63   public ContainerInhalt nextVO() {
64     // wenn Daten Sch* sind, kann ClassCastException kommen
65     return (ContainerInhaltthis.iterator.next();
66   // end of nextVO
67 
68   /**
69    @see java.util.Iterator#remove()
70    @throws UnsupportedOperationException wenn aufgerufen, 
71    * da nur lesende Zugriffe möglich sind 
72    */
73   public void remove() {
74     throw new UnsupportedOperationException(
75       "TopicVOContainer nur lesbar! kein remove() möglich.");
76   // end of remove
77 
78   /**
79    @see java.util.Iterator#hasNext()
80    */
81   public boolean hasNext() {
82     return this.iterator.hasNext();
83   // end of hasNext
84 
85   /**
86    @see java.util.Iterator#next()
87    */
88   public Object next() {
89     return this.iterator.next();
90   // end of next
91 
92   /**
93    * gibt die aktuelle Anzahl der Elemente im Container zurück
94    @return containerElementGroesse
95    */
96   public int size() {
97     return this.inhalt.size();
98   // end of size
99 // end of class