TestUmlManager.java
package algorithmen.umleditor;
/**
* Simple test class for UmlManager
*/
public class TestUmlManager {
/**
* Creates a simple demo class
*/
protected static Class createSampleClass() {
Class c = new Class("Baum");
// erzeuge Felder
Field indentPrint = new Field("indentPrint", "int");
indentPrint.setVisibility(Visibility.PRIVATE);
indentPrint.setStatic(true);
indentPrint.setValue("3");
Field wurzel = new Field("wurzel", "BaumKnoten");
wurzel.setVisibility(Visibility.PROTECTED);
wurzel.setValue("null");
// Felder für die Parameterlisten
Field parMutter = new Field("nameMutter", "String");
Field parKind = new Field("nameKind", "String");
Field parBaumKnoten = new Field("s", "BaumKnoten");
Field parPos = new Field("pos", "int");
// erzeuge Methoden
Method einfuegeMutter = new Method("einfuegeMutter", "boolean");
einfuegeMutter.setVisibility(Visibility.PUBLIC);
einfuegeMutter.addParameter(parMutter);
einfuegeMutter.addParameter(parKind);
Method einfuegeMutter2 = new Method("einfuegeMutter", "boolean");
einfuegeMutter2.setVisibility(Visibility.PRIVATE);
einfuegeMutter2.addParameter(parBaumKnoten);
einfuegeMutter2.addParameter(parMutter);
einfuegeMutter2.addParameter(parKind);
Method toString = new Method("toString", "String");
toString.setVisibility(Visibility.PUBLIC);
Method toString2 = new Method("toString", "String");
toString2.setVisibility(Visibility.PRIVATE);
toString2.addParameter(parBaumKnoten);
toString2.addParameter(parPos);
c.addField(indentPrint);
c.addField(wurzel);
c.addMethod(einfuegeMutter);
c.addMethod(einfuegeMutter2);
c.addMethod(toString);
c.addMethod(toString2);
return c;
}
/**
* Erzeugt ein einfaches Beispiel-Interface
*/
protected static Interface createSampleInterface() {
Interface demoInterface = new Interface("TimerListener");
// Felder für die Parameterlisten
Field parEvent1 = new Field("e", "NextStepEvent");
Field parEvent2 = new Field("e", "RestartEvent");
Method nextStep = new Method("nextStep", "void");
nextStep.addParameter(parEvent1);
Method restart = new Method("restart", "void");
restart.addParameter(parEvent2);
demoInterface.addMethod(nextStep);
demoInterface.addMethod(restart);
return demoInterface;
}
/**
* Erzeugt ein Beispiel-Objekt mit zufälligen Werten
*/
protected static int nObject = 0;
protected static Object createRandomObject() {
// erzeuge Felder fuer das Objekt
Field xField = new Field("x", "double");
xField.setValue("" + Math.random());
Field yField = new Field("y", "double");
yField.setValue("" + Math.random());
nObject++;
Object o = new Object("z" + nObject, "Complex");
o.addField(xField);
o.addField(yField);
return o;
}
/**
* Erzeugt einen UML-Manager mit einigen UMLObjekten.
*/
public static UmlManager createSampleManager() {
UmlManager theManager = UmlManager.getUmlManager();
theManager.addUmlElement(createSampleClass());
theManager.addUmlElement(createSampleInterface());
theManager.addUmlElement(new Class());
theManager.addUmlElement(createRandomObject());
theManager.addUmlElement(createRandomObject());
theManager.addUmlElement(createRandomObject());
return theManager;
}
/**
* Testprogramm für UmlManager.
* Erzeugt UmlManager mit kleiner Liste von Objekten, gibt ihn aus
* und speichert ihn.
* Erzeugt neue Miniliste und gibt sie aus.
* Lädt alte Liste aus der Datei und gibt sie aus.
*/
public static void main(String[] args) {
String file = "umltest.ser";
// Demo-Liste
UmlManager theManager = createSampleManager();
System.out.println("Dump der Demo-Liste:");
System.out.println("====================\n\n" + theManager);
theManager.save(file);
// einfache Liste
theManager.clear();
theManager.addUmlElement(new Object());
theManager.addUmlElement(createRandomObject());
theManager.addUmlElement(new Interface());
System.out.println("\nDump der Simple-Liste:");
System.out.println("======================\n\n" + theManager);
// Liste einladen
theManager.load(file);
System.out.println("\nDump der eingelesenen Liste:");
System.out.println("============================\n\n" + theManager);
}
}