Visibility.java
package algorithmen.umleditor;
import java.io.*;
/**
* Enumeration type for the visibility of a field/method.
* Possible values: PRIVATE, PROTECTED, PUBLIC, DEFAULT
*/
public class Visibility implements Serializable {
private String name;
/**
* Creates a new instance of Visibility with a given String.
* Since it is private, only the predefined values can be used.
*/
private Visibility(String s) {
name = s;
}
public String toString() {
return name;
}
/**
* Gibt das UML-Zeichen der Zugriffsklasse zurück.
*/
public String getUmlSymbol() {
if (this == PRIVATE) {
return "-";
} else if (this == PROTECTED) {
return "#";
} else if (this == PUBLIC) {
return "+";
} else {
return "";
}
}
/**
* Liefert ein Array mit allen Zugriffswerten
*/
public static Visibility[] getVisibilities() {
return list;
}
/**
* list of predefined values
*/
public static Visibility PRIVATE = new Visibility("private");
public static Visibility PROTECTED = new Visibility("protected");
public static Visibility PUBLIC = new Visibility("public");
public static Visibility DEFAULT = new Visibility("default");
protected static Visibility[] list = {DEFAULT, PRIVATE, PROTECTED, PUBLIC};
/**
* Serialisation is not automatic for static objects.
* It has to be augmented with writeObject and readObject.
*/
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeObject(PRIVATE);
out.writeObject(PROTECTED);
out.writeObject(PUBLIC);
out.writeObject(DEFAULT);
}
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
PRIVATE = (Visibility) in.readObject();
PROTECTED = (Visibility) in.readObject();
PUBLIC = (Visibility) in.readObject();
DEFAULT = (Visibility) in.readObject();
}
}