Goal.java
package edu.toronto.cs.goalmodel;
import java.util.List;
/** @model */
public interface Goal {
/** @model */
String getName();
/** @model default=0 */
LabelType getLabel();
/** @model */
DecompositionType getType();
/** @model */
Goal getParent();
/** @model type="Goal" containment="true" opposite="parent" */
List getGoal();
/** @model type="Topic" containment="true" */
List getTopics();
/** @model type="Contribution" containment="true" */
List getRule();
/** @model type="Property" containment="true" */
List getProperty();
}
Contribution.java
package edu.toronto.cs.goalmodel;
/** @model */
public interface Contribution {
/** @model type="ContributionType" */
int getType();
/** @model */
Goal getTarget();
}
DecompositionType.java
package edu.toronto.cs.goalmodel;
/** @model */
public final class DecompositionType {
/** @model name="OR" */
public static final int OR = 0;
/** @model name="AND" */
public static final int AND = 1;
/** @model name="LEAF" */
public static final int LEAF = 2;
}
ContributionType.java
package edu.toronto.cs.goalmodel;
/** @model */
public final class ContributionType {
/** @model name="HELP" */
public static final int HELP = 1;
/** @model name="HURT" */
public static final int HURT = -1;
/** @model name="MAKE" */
public static final int MAKE = 2;
/** @model name="BREAK" */
public static final int BREAK = -2;
}
LabelType.java
package edu.toronto.cs.goalmodel;
/** @model */
public final class LabelType {
/** @model name="Satisfied" */
public static final int SATISFIED = 2;
/** @model name="Denied" */
public static final int DENIED = -2;
/** @model name="PartiallySatisfied" */
public static final int PARTIALLY_SATISFIED = 1;
/** @model name="PartiallyDenied" */
public static final int PARTIALLY_DENIED = -1;
/** @model name="Unknown" */
public static final int UNKNOWN = 0;
/** @model name="Conflict" */
public static final int CONFLICT = 4;
}
Topic.java
package edu.toronto.cs.goalmodel;
/** @model */
public interface Topic {
/** @model */
String getTopic();
}
Property.java
package edu.toronto.cs.goalmodel;
/** @model */
public interface Property {
/** @model */
String getName();
/** @model */
String getValue();
}
Resources
EMF