org.opencrx.kernel.model1.jdo2
Class Constraint

java.lang.Object
  extended by org.oasisopen.jdo2.Identifiable
      extended by org.w3c.jdo2.AbstractObject
          extended by org.opencrx.kernel.model1.jdo2.Element
              extended by org.opencrx.kernel.model1.jdo2.Constraint
All Implemented Interfaces:
Serializable, AlertSender, Auditee, Cloneable, Exporter, Importer, Indexed, SecureObject, CrxObject, Constraint, Element, BasicObject, ContextCapable, ExtentCapable, ViewCapable

public class Constraint
extends Element
implements Constraint

Class Constraint

A Constraint defines a rule that restricts the state or behavior of one or more elements in the meta-model. When a Constraint is attached to a ModelElement, the rule it encodes applies to all relevant instances of the ModelElement in a model.

A Constraint rule, represented by the 'expression' attribute, may be encoded in any form. The 'language' attribute may be used to denote the language and encoding scheme used.

While some Constraints on a model may need to be treated as invariant, it is often convenient for other Constraints to be relaxed, for instance while a model is being edited. While, the 'evaluationPolicy' attribute is used to represent these two cases, this information is at best advisory, since the MOF specification does not currently state how and when Constraints should be enforced.

Note
A Constraint cannot over-ride structural integrity rules defined by other parts of a meta-model (e.g., multiplicity specifications) or the integrity rules defined by a particular mapping of the meta-model to implementation technology.

See Also:
Serialized Form

Nested Class Summary
static class Constraint.Slice
          Slice object hold the Constraint's multivalued attributes
 
Nested classes/interfaces inherited from class org.opencrx.kernel.model1.jdo2.Element
Element.Identity
 
Nested classes/interfaces inherited from class org.w3c.jdo2.AbstractObject
org.w3c.jdo2.AbstractObject.EmbeddedList<E>, org.w3c.jdo2.AbstractObject.EmbeddedSet<E>
 
Nested classes/interfaces inherited from interface org.opencrx.kernel.model1.cci2.Element
Element.Identity
 
Field Summary
static List<String> CLASS
          Define the model class org::opencrx::kernel::model1::Constraint
 
Fields inherited from class org.opencrx.kernel.model1.jdo2.Element
BASE_CLASS
 
Constructor Summary
Constraint()
           
 
Method Summary
 short getEvaluationPolicy()
          Retrieves the value for the attribute evaluationPolicy.
 String getExpression()
          Retrieves the value for the attribute expression.
 String getLanguage()
          Retrieves the value for the attribute language.
static Element.Identity newIdentity(Segment.Identity segment, QualifierType idType, String id)
           
protected  org.w3c.jdo2.AbstractObject.Slice newSlice(int index)
           
protected  List<String> openmdxjdoGetClass()
          Retrieve the model class
protected  int openmdxjdoGetSize(int field)
           
protected  void openmdxjdoSetSize(int field, int size)
           
static Element.Identity openmdxjdoToIdentity(ObjectId objectId)
           
 void setEvaluationPolicy(short evaluationPolicy)
          Sets a new value for the attribute evaluationPolicy.
 void setExpression(String expression)
          Sets a new value for the attribute expression.
 void setLanguage(String language)
          Sets a new value for the attribute language.
 
Methods inherited from class org.opencrx.kernel.model1.jdo2.Element
addOwningGroup, addToSegment, addToSegment, checkPermissions, clone_, exportItem, exportItemAdvanced, getAccessGrantedByParent, getAccessLevelBrowse, getAccessLevelDelete, getAccessLevelUpdate, getAdditionalExternalLink, getAnnotation, getAttachedDocument, getAudit, getCategory, getContainer, getContext, getCreatedAt, getCreatedBy, getDisabledReason, getDocumentFolderAssignment, getElementOrder, getExternalLink, getIdentity, getIndexEntry, getMedia, getModifiedAt, getModifiedBy, getName, getNote, getOwner, getOwningGroup, getOwningUser, getPropertySet, getPropertySetEntry, getQualifiedName, getRating, getSegment, getStereotype, getUserBoolean4, getUserCode0, getUserCode1, getUserCode2, getUserCode3, getUserCode4, getUserDate0, getUserDate1, getUserDate2, getUserDate3, getUserDate4, getUserDateTime0, getUserDateTime1, getUserDateTime2, getUserDateTime3, getUserDateTime4, getUserNumber0, getUserNumber1, getUserNumber2, getUserNumber3, getUserNumber4, getUserString0, getUserString1, getUserString2, getUserString3, getUserString4, getView, importItem, isDisabled, isUserBoolean0, isUserBoolean1, isUserBoolean2, isUserBoolean3, openmdxjdoGetObjectId, openmdxjdoGetSlices, removeAllOwningGroup, removeOwningGroup, replaceOwningGroup, sendAlert, setAccessLevel, setAccessLevelBrowse, setAccessLevelDelete, setAccessLevelUpdate, setAnnotation, setCategory, setContainer, setDisabled, setDisabledReason, setElementOrder, setExternalLink, setName, setOwningUser, setOwningUser, setStereotype, setUserBoolean0, setUserBoolean1, setUserBoolean2, setUserBoolean3, setUserBoolean4, setUserCode0, setUserCode1, setUserCode2, setUserCode3, setUserCode4, setUserDate0, setUserDate1, setUserDate2, setUserDate3, setUserDate4, setUserDateTime0, setUserDateTime1, setUserDateTime2, setUserDateTime3, setUserDateTime4, setUserNumber0, setUserNumber1, setUserNumber2, setUserNumber3, setUserNumber4, setUserString0, setUserString1, setUserString2, setUserString3, setUserString4, updateIndex
 
Methods inherited from class org.w3c.jdo2.AbstractObject
openmdxjdoClassName, openmdxjdoGetIdentityBuilder, openmdxjdoGetList, openmdxjdoGetObjectsByParent, openmdxjdoGetSet, openmdxjdoGetSparseArray, openmdxjdoNewMap, openmdxjdoNewSlice, openmdxjdoSetArray, openmdxjdoSetCollection, openmdxjdoToArray, openmdxjdoToArray, openmdxjdoValidateElement
 
Methods inherited from class org.oasisopen.jdo2.Identifiable
jdoClass, modelClasses, openmdxjdoGetObject, openmdxjdoGetObjectById, openmdxjdoGetObjectId, openmdxjdoGetObjectSet, openmdxjdoNewObjectId, openmdxjdoNewObjectId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opencrx.kernel.model1.cci2.Element
getAnnotation, getContainer, getElementOrder, getName, getQualifiedName, getSegment, getStereotype, setAnnotation, setContainer, setElementOrder, setName, setStereotype
 
Methods inherited from interface org.opencrx.kernel.generic.cci2.CrxObject
getAdditionalExternalLink, getAttachedDocument, getCategory, getDisabledReason, getDocumentFolderAssignment, getExternalLink, getMedia, getNote, getPropertySet, getPropertySetEntry, getRating, getUserBoolean4, getUserCode0, getUserCode1, getUserCode2, getUserCode3, getUserCode4, getUserDate0, getUserDate1, getUserDate2, getUserDate3, getUserDate4, getUserDateTime0, getUserDateTime1, getUserDateTime2, getUserDateTime3, getUserDateTime4, getUserNumber0, getUserNumber1, getUserNumber2, getUserNumber3, getUserNumber4, getUserString0, getUserString1, getUserString2, getUserString3, getUserString4, isDisabled, isUserBoolean0, isUserBoolean1, isUserBoolean2, isUserBoolean3, setCategory, setDisabled, setDisabledReason, setExternalLink, setUserBoolean0, setUserBoolean1, setUserBoolean2, setUserBoolean3, setUserBoolean4, setUserCode0, setUserCode1, setUserCode2, setUserCode3, setUserCode4, setUserDate0, setUserDate1, setUserDate2, setUserDate3, setUserDate4, setUserDateTime0, setUserDateTime1, setUserDateTime2, setUserDateTime3, setUserDateTime4, setUserNumber0, setUserNumber1, setUserNumber2, setUserNumber3, setUserNumber4, setUserString0, setUserString1, setUserString2, setUserString3, setUserString4
 
Methods inherited from interface org.opencrx.kernel.base.cci2.AlertSender
sendAlert
 
Methods inherited from interface org.opencrx.kernel.base.cci2.Auditee
getAudit
 
Methods inherited from interface org.opencrx.kernel.base.cci2.Cloneable
clone_
 
Methods inherited from interface org.opencrx.kernel.base.cci2.Exporter
exportItem, exportItemAdvanced
 
Methods inherited from interface org.opencrx.kernel.base.cci2.Importer
importItem
 
Methods inherited from interface org.opencrx.kernel.base.cci2.Indexed
getIndexEntry, updateIndex
 
Methods inherited from interface org.opencrx.kernel.base.cci2.SecureObject
addOwningGroup, checkPermissions, getAccessGrantedByParent, getAccessLevelBrowse, getAccessLevelDelete, getAccessLevelUpdate, getOwner, getOwningGroup, getOwningUser, removeAllOwningGroup, removeOwningGroup, replaceOwningGroup, setAccessLevel, setAccessLevelBrowse, setAccessLevelDelete, setAccessLevelUpdate, setOwningUser, setOwningUser
 
Methods inherited from interface org.openmdx.base.cci2.BasicObject
getCreatedAt, getCreatedBy, getModifiedAt, getModifiedBy
 
Methods inherited from interface org.openmdx.base.cci2.ContextCapable
getContext
 
Methods inherited from interface org.openmdx.base.cci2.ExtentCapable
getIdentity
 
Methods inherited from interface org.openmdx.compatibility.view1.cci2.ViewCapable
getView
 

Field Detail

CLASS

public static final List<String> CLASS
Define the model class org::opencrx::kernel::model1::Constraint

Constructor Detail

Constraint

public Constraint()
Method Detail

getExpression

public String getExpression()
Retrieves the value for the attribute expression.

The Constraint's expression attribute provides a representation of the constraint. The MOF has no specific requirement to interpret this expression, or to validate it against the language attribute. The specific handling of the expression will necessarily vary with the language used. However, it is expected that for any language an implementation accepts, it will enforce the constraints expressed in that language. The expression can be represented in any format, including text or a composition of objects.

Specified by:
getExpression in interface Constraint
Returns:
The non-null value for attribute expression.

setExpression

public void setExpression(String expression)
Sets a new value for the attribute expression.

The Constraint's expression attribute provides a representation of the constraint. The MOF has no specific requirement to interpret this expression, or to validate it against the language attribute. The specific handling of the expression will necessarily vary with the language used. However, it is expected that for any language an implementation accepts, it will enforce the constraints expressed in that language. The expression can be represented in any format, including text or a composition of objects.

Specified by:
setExpression in interface Constraint
Parameters:
expression - The non-null new value for attribute expression.

getLanguage

public String getLanguage()
Retrieves the value for the attribute language.

The language representing this Constraint's expression is defined in this attribute. Since it is a string, most any language can be represented, including format variances in a language (e.g., OCL as text verses OCL as a parse tree).

Specified by:
getLanguage in interface Constraint
Returns:
The non-null value for attribute language.

setLanguage

public void setLanguage(String language)
Sets a new value for the attribute language.

The language representing this Constraint's expression is defined in this attribute. Since it is a string, most any language can be represented, including format variances in a language (e.g., OCL as text verses OCL as a parse tree).

Specified by:
setLanguage in interface Constraint
Parameters:
language - The non-null new value for attribute language.

getEvaluationPolicy

public short getEvaluationPolicy()
Retrieves the value for the attribute evaluationPolicy.

Each constraint can be defined as immediate or deferred. For immediate Constraints, the constraint violation will be detected and reported within an operation in the chain of operations between the operation initiated by the MOF user and the operation that caused the constraint violation. The effect of an operation that violates an immediate constraint on the state of the object or objects being altered is implementation specific, and possibly undefined. However, if possible, an implementation should reverse the effects of the operation.

For deferred Constraints, the constraint violation can only be detected when the Constraint is explicitly evaluated. The MOF defines an operation for such constraint evaluation, the verify operation. When the verify operation is invoked on a Constraint's container, the constraint is evaluated and a constraint violation is detected, if present.

Specified by:
getEvaluationPolicy in interface Constraint
Returns:
The non-null value for attribute evaluationPolicy.

setEvaluationPolicy

public void setEvaluationPolicy(short evaluationPolicy)
Sets a new value for the attribute evaluationPolicy.

Each constraint can be defined as immediate or deferred. For immediate Constraints, the constraint violation will be detected and reported within an operation in the chain of operations between the operation initiated by the MOF user and the operation that caused the constraint violation. The effect of an operation that violates an immediate constraint on the state of the object or objects being altered is implementation specific, and possibly undefined. However, if possible, an implementation should reverse the effects of the operation.

For deferred Constraints, the constraint violation can only be detected when the Constraint is explicitly evaluated. The MOF defines an operation for such constraint evaluation, the verify operation. When the verify operation is invoked on a Constraint's container, the constraint is evaluated and a constraint violation is detected, if present.

Specified by:
setEvaluationPolicy in interface Constraint
Parameters:
evaluationPolicy - The non-null new value for attribute evaluationPolicy.

openmdxjdoGetSize

protected int openmdxjdoGetSize(int field)
Overrides:
openmdxjdoGetSize in class Element

openmdxjdoSetSize

protected void openmdxjdoSetSize(int field,
                                 int size)
Overrides:
openmdxjdoSetSize in class Element

newSlice

protected org.w3c.jdo2.AbstractObject.Slice newSlice(int index)
Overrides:
newSlice in class Element

openmdxjdoGetClass

protected List<String> openmdxjdoGetClass()
Retrieve the model class

Overrides:
openmdxjdoGetClass in class Element
Returns:
the model class
See Also:
Constraint.CLASS

newIdentity

public static Element.Identity newIdentity(Segment.Identity segment,
                                           QualifierType idType,
                                           String id)

openmdxjdoToIdentity

public static Element.Identity openmdxjdoToIdentity(ObjectId objectId)


This software is published under the BSD license. Copyright © 2003-2008, CRIXP AG, Switzerland, All rights reserved. Use is subject to license terms.