Object.java

package algorithmen.umleditor;

import java.util.*;

/**
 * Object einer Class, mit Werten für die Felder.
 */
public class Object extends UmlElement {
  protected String type;
  protected Vector fields;
  
  /**
   * Erzeugt ein neues Objekt vomTyp Interface mit vorgegebenem Namen.
   */
  public Object(String name, String type) {
    super(name);
    this.type = type;
    fields = new Vector();
  }
  
  /**
   * Standard-Konstruktor mit Namen "NewClass"
   */
  public Object() {
    this("newObject", "String");
  }
  
  /**
   * Holt den Typ des Objekts.
   */
  public String getType() {
    return type;
  }
  
  /**
   * Setzt den Typ des Objekts.
   */
  public void setType(String newType) {
    type = newType;
  }
  
  /**
   * Fügt das Field f der Feldliste (am Ende) hinzu.
   */
  public void addField(Field f) {
    fields.add(f);
  }
  
  /**
   * Entfernt das Field an der Position index aus der Feldliste.
   */
  public void removeField(int index) {
    fields.remove(index);
  }
  
  /*
   * Gibt die Anzahl der Felder zurück.
   */
  public int getNFields() {
    return fields.size();
  }
  
  /**
   * Gibt das n-te Feld zurück.
   */
  public Field getField(int n) {
    return (Field) fields.get(n);
  }
  
  /**
   * Setzt das n-te Feld.
   */
  public void setField(int n, Field f) {
    fields.set(n, f);
  }
  
  /**
   * Gibt die Feldliste zurück.
   */
  public Vector getFields() {
    return fields;
  }
  
  /**
   * Ersetzt die komplette Feldliste.
   */
  public void setFields(Vector f) {
    fields = f;
  }
  
  /**
   * Liefert eine String-Darstellung eines Object-Objekts.
   * Typisches Beispiel:
   *    "Dreieck meinDreieck {
   *       private double x = 0.0;
   *       private double y = 0.0;
   *    }"
   */
  public String toString() {
    String s = type + " "  + name + " {\n";
    
    // laufe durch die Feldliste
    for (Iterator i = fields.iterator(); i.hasNext(); ) {
      Field f = (Field) i.next();
      s += "  " + f + ";\n";
    }
    s += "}";
    return s;
  }
}