UmlManager.java
package algorithmen.umleditor;
import java.util.*;
import java.io.*;
/**
* Manager für alle Elemente eines UML-Diagramms.
* Ist zuständig für alle globalen Operationen wie laden und speichern.
* Gehorcht dem Singleton-Pattern.
*/
public class UmlManager implements Serializable {
private static UmlManager theManager;
protected List UmlElements;
/** Creates a new instance of UMLManager */
private UmlManager() {
UmlElements = new ArrayList();
}
public static UmlManager getUmlManager() {
if (theManager == null) {
theManager = new UmlManager();
}
return theManager;
}
/**
* fügt ein UmlElement in die Liste des UmlManagers ein.
*/
public void addUmlElement(UmlElement o) {
UmlElements.add(o);
}
/**
* löscht alle UmlElements aus der Liste des UmlManagers.
*/
public void clear() {
UmlElements.clear();
}
/**
* Speichert die Liste aller UmlObjekte in der Datei file.
*/
public void save(String file) {
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(UmlElements);
out.close(); // flushes output
} catch (Exception e) {
System.err.println("Fehler beim Speichern in " + file);
e.printStackTrace();
}
}
/**
* Lädt die Liste aller UmlObjekte aus der Datei file.
*/
public void load(String file) {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
UmlElements = (List) in.readObject();
} catch (Exception e) {
System.err.println("Fehler beim Laden von " + file);
e.printStackTrace();
}
}
/**
* Liefert eine String-Darstellung eines UmlManager-Objekts.
*/
public String toString() {
String s = "";
for (Iterator i = UmlElements.iterator(); i.hasNext(); ) {
UmlElement o = (UmlElement) i.next();
s += o + "\n";
}
return s;
}
}