package gov.nasa.jpl.mbee.mdk.constraint;
import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element;
import java.util.Collection;
import java.util.Set;
/**
* A constraint in the context of a model.
*/
public interface Constraint {
/**
* @return the constrained elements and any other other constrained objects.
*/
Set<Object> getConstrainedObjects();
Set<Element> getConstrainingElements();
void addConstrainedObjects(Collection<Object> objects);
void addConstrainedObject(Object object);
void addConstrainingElements(Collection<Element> elements);
void addConstrainingElement(Element element);
Element getViolatedConstraintElement();
boolean isReported();
/**
* @return a text expression of the constraint
*/
String getExpression();
Boolean evaluate();
/**
* @return whether the constraint is properly specified and not
* self-contradictory
*/
boolean isConsistent();
}