SetDescriptor domain;
SetDescriptor range;
boolean bStatic;
+ public static String prefix="";
+ public static final Usage NONE = new Usage("NONE");
+ public static final Usage IMAGE = new Usage("IMAGE");
+ public static final Usage INVIMAGE = new Usage("INVIMAGE");
+ public static final Usage BOTH = new Usage("BOTH");
+
+ public static class Usage {
+ String name;
+ private Usage(String name) { this.name = name; }
+ public String toString() { return name; }
+ }
+
+ Usage usage = NONE;
public RelationDescriptor(String name) {
super(name);
return range;
}
+ public void addUsage(Usage newusage) {
+ if (newusage == null || newusage == NONE || newusage == BOTH) {
+ throw new IllegalArgumentException();
+ }
+
+ Usage oldusage = usage;
+
+ if (usage == BOTH) {
+ return;
+ } else if (usage == IMAGE && newusage == INVIMAGE) {
+ usage = BOTH;
+ } else if (usage == INVIMAGE && newusage == IMAGE) {
+ usage = BOTH;
+ } else {
+ usage = newusage;
+ }
+
+ //System.out.println(getSymbol() + " usage: " + oldusage + " + " + newusage + " => " + usage);
+ }
+
+ public boolean testUsage(Usage testusage) {
+ return (usage == BOTH) || (testusage == usage);
+ }
+
+ public String getSafeSymbol() {
+ return prefix+safename;
+ }
+
+ public String getJustSafeSymbol() {
+ return safename;
+ }
}