<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">// #######################################################################
// ### StringListeDaten.java                                           ###
// ### Verwaltung von StringListe-Datenobjekten                        ###
// ### Verantwortlich: Thomas Dreibholz, dreibh@exp-math.uni-essen.de  ###
// #######################################################################


package pm;


import java.io.*;
import java.util.*;


// ****** StringDaten ****************************************************
public class StringListeDaten implements Datenobjekt
{
   private String beschreibung;
   private Vector daten;
   private int    aktuell;


   // ###### Konstruktor #################################################   
   public StringListeDaten(String nBeschreibung) {
      beschreibung = nBeschreibung;
      daten        = new Vector();
      aktuell      = 0;
   }

   
   // ###### Vergleich mit anderem StringDaten-Objekt ####################
   public boolean equals(StringListeDaten vergleich) {
      if(daten.size() == vergleich.daten.size()) {
         for(int i = 0;i &lt; daten.size();i++) {
            if(!vergleich.IstVorhanden((String)daten.elementAt(i)))
               return(false);
         }
         return(true);
      }
      return(false);      
   }

   
   // ###### Eingabetyp als String zurückgeben ###########################
   public String EingabeTyp() {
      return("STRINGLISTE");
   }

   
   // ###### Beschreibung zurückgeben ####################################
   public String Beschreibung() {
      return(beschreibung);
   }


   // ###### Inhalt zurückgeben ##########################################
   public String Inhalt() {
      return("");
   }


   // ###### Inhalt zurückgeben ##########################################
   public int InhaltInteger() {
      return(0);
   }


   // ###### Inhalt ändern ###############################################
   public void Aendern(String neu) {
   }


   // ###### Inhalt ändern ###############################################
   public void AendernInteger(int neu) {
   }
               
   
   // ###### Ausgabe #####################################################
   public void Ausgabe() {
      System.out.println(toString());
   }


   // ###### Umwandlung in String ########################################
   public String toString() {
      String s = beschreibung + " =\n";
      for(int i = 0;i &lt; daten.size();i++) {
         s = s + "   " + (String)daten.elementAt(i) + "\n";
      }
      return(s);
   }                                 

   
   // ###### String "neu" vor String "vor" einfügen ######################
   public void Einfuegen(String neu, String vor) throws NoSuchElementException {
      int index = daten.indexOf(vor);
      if(index == -1) throw new NoSuchElementException();
      daten.insertElementAt(neu,index);
   }

   
   // ###### String "neu" anfügen ########################################   
   public void Anfuegen(String neu) {
      daten.addElement(neu);
   }

   
   // ###### String "alt" löschen ########################################
   public void Loeschen(String alt) throws NoSuchElementException {
      int index = daten.indexOf(alt);
      if(index == -1) throw new NoSuchElementException();      
      daten.removeElementAt(index);
      aktuell = 0;
   }

   
   // ###### String "alt" in "neu" ändern ################################
   public void Aendern(String alt, String neu) throws NoSuchElementException {
      int index = daten.indexOf(alt);
      if(index == -1) throw new NoSuchElementException();      
      daten.setElementAt(neu,daten.indexOf(alt));
   }


   // ###### Vorhandensein eines Elementes überprüfen ####################
   public boolean IstVorhanden(String name) {
      for(int i = 0;i &lt; Anzahl();i++) {
         if(name.equals(Element(i))) return(true);
      }
      return(false);
   }

   
   // ###### Erstes Element zurückliefern ################################
   public String ErstesElement() throws NoSuchElementException {
      aktuell = 0;
      return((String)daten.firstElement());
   }


   // ###### Nächstes Element zurückliefern ##############################
   public String NaechstesElement() throws NoSuchElementException {
      aktuell++;
      return((String)daten.elementAt(aktuell));
   }

   
   // ###### Anzahl der Elemente in der Liste ############################
   public int Anzahl() {
      return(daten.size());
   }

   
   // ###### String an Position i zurückliefern ###########################
   public String Element(int i) throws ArrayIndexOutOfBoundsException {
      return((String)daten.elementAt(i));
   }
}
</pre></body></html>