public class TypeImpl extends NamedElementImpl implements Type
The following features are implemented:
org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolder, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderBaseImpl, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderImplorg.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList| Modifier and Type | Field and Description |
|---|---|
protected static java.lang.String |
INSTANCE_CLASS_NAME_EDEFAULT
The default value of the '
Instance Class Name' attribute. |
protected java.lang.String |
instanceClassName
The cached value of the '
Instance Class Name' attribute. |
protected org.eclipse.emf.common.util.EList<Property> |
ownedAttribute
The cached value of the '
Owned Attribute' containment reference list. |
protected org.eclipse.emf.common.util.EList<Constraint> |
ownedInvariant
The cached value of the '
Owned Invariant' containment reference list. |
protected org.eclipse.emf.common.util.EList<Operation> |
ownedOperation
The cached value of the '
Owned Operation' containment reference list. |
protected TemplateSignature |
ownedTemplateSignature
The cached value of the '
Owned Template Signature' containment reference. |
protected org.eclipse.emf.common.util.EList<Type> |
superClass
The cached value of the '
Super Class' reference list. |
protected org.eclipse.emf.common.util.EList<TemplateBinding> |
templateBinding
The cached value of the '
Template Binding' containment reference list. |
protected TemplateParameter |
templateParameter
The cached value of the '
Template Parameter' reference. |
protected TemplateableElement |
unspecializedElement
The cached value of the '
Unspecialized Element' reference. |
IS_STATIC_EDEFAULT, IS_STATIC_EFLAG, name, NAME_EDEFAULT, ownedAnnotationextension, ownedCommenteAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY| Modifier | Constructor and Description |
|---|---|
protected |
TypeImpl() |
| Modifier and Type | Method and Description |
|---|---|
<R> R |
accept(Visitor<R> visitor)
Returns the result of accepting a visit from a visitor.
|
TemplateParameter |
basicGetTemplateParameter() |
org.eclipse.emf.common.notify.NotificationChain |
basicSetOwnedTemplateSignature(TemplateSignature newOwnedTemplateSignature,
org.eclipse.emf.common.notify.NotificationChain msgs) |
org.eclipse.emf.common.notify.NotificationChain |
basicSetOwningTemplateParameter(TemplateParameter newOwningTemplateParameter,
org.eclipse.emf.common.notify.NotificationChain msgs) |
org.eclipse.emf.common.notify.NotificationChain |
basicSetPackage(Package newPackage,
org.eclipse.emf.common.notify.NotificationChain msgs) |
org.eclipse.emf.common.notify.NotificationChain |
basicSetTemplateParameter(TemplateParameter newTemplateParameter,
org.eclipse.emf.common.notify.NotificationChain msgs) |
TypeId |
computeId() |
boolean |
conformsTo(DomainStandardLibrary standardLibrary,
DomainType type)
Return true if this type conform to thatType within standardLibrary.
|
org.eclipse.emf.ecore.EObject |
createInstance()
Return a new instance of this type from valueFactory.
|
java.lang.Object |
createInstance(java.lang.String value)
Return a new instance of this data type from valueFactory.
|
Property |
createOwnedAttribute() |
Constraint |
createOwnedInvariant() |
Operation |
createOwnedOperation() |
Operation |
createOwnedOperation(org.eclipse.emf.ecore.EClass eClass) |
TemplateSignature |
createOwnedTemplateSignature() |
TemplateBinding |
createTemplateBinding() |
int |
eBaseStructuralFeatureID(int derivedFeatureID,
java.lang.Class<?> baseClass) |
org.eclipse.emf.common.notify.NotificationChain |
eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs) |
int |
eDerivedOperationID(int baseOperationID,
java.lang.Class<?> baseClass) |
int |
eDerivedStructuralFeatureID(int baseFeatureID,
java.lang.Class<?> baseClass) |
java.lang.Object |
eGet(int featureID,
boolean resolve,
boolean coreType) |
org.eclipse.emf.common.notify.NotificationChain |
eInverseAdd(org.eclipse.emf.ecore.InternalEObject otherEnd,
int featureID,
org.eclipse.emf.common.notify.NotificationChain msgs) |
org.eclipse.emf.common.notify.NotificationChain |
eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd,
int featureID,
org.eclipse.emf.common.notify.NotificationChain msgs) |
java.lang.Object |
eInvoke(int operationID,
org.eclipse.emf.common.util.EList<?> arguments) |
boolean |
eIsSet(int featureID) |
void |
eSet(int featureID,
java.lang.Object newValue) |
protected org.eclipse.emf.ecore.EClass |
eStaticClass() |
void |
eUnset(int featureID) |
DomainType |
getCommonType(IdResolver idResolver,
DomainType type)
Return the most derived type com mon to this type and thatType within standardLibrary.
|
DomainInheritance |
getInheritance(DomainStandardLibrary standardLibrary)
Return the inheritance description for this type within standardLibrary.
|
java.lang.String |
getInstanceClassName() |
java.util.List<? extends DomainOperation> |
getLocalOperations() |
java.util.List<? extends DomainProperty> |
getLocalProperties() |
java.util.List<? extends DomainType> |
getLocalSuperTypes() |
java.lang.String |
getMetaTypeName()
Return the name of the meta-type of this type.
|
DomainType |
getNormalizedType(DomainStandardLibrary standardLibrary)
Return the unique executable form of this type within standardLibrary.
|
java.util.List<Property> |
getOwnedAttribute() |
java.util.List<Constraint> |
getOwnedInvariant() |
java.util.List<Operation> |
getOwnedOperation() |
java.util.List<? extends DomainConstraint> |
getOwnedRule() |
TemplateSignature |
getOwnedTemplateSignature() |
TemplateParameter |
getOwningTemplateParameter() |
Package |
getPackage() |
java.util.List<Type> |
getSuperClass() |
java.util.List<TemplateBinding> |
getTemplateBinding() |
TemplateParameter |
getTemplateParameter() |
TypeId |
getTypeId()
Return a unique StandardLibrary-independent identifier for this type.
|
DomainTypeParameters |
getTypeParameters()
Return the ordered list of type parameters of this type.
|
TemplateableElement |
getUnspecializedElement() |
boolean |
isCompatibleWith(ParameterableElement p) |
boolean |
isEqualTo(DomainStandardLibrary standardLibrary,
DomainType type)
Return true if this is the same type as thatType within standardLibrary.
|
boolean |
isEqualToUnspecializedType(DomainStandardLibrary standardLibrary,
DomainType type) |
boolean |
isInvalid()
Return true if this is an invalid type (with an associated error message).
|
boolean |
isOrdered()
Return true if this type is a Collection type and has ordered elements.
|
boolean |
isSetTemplateParameter() |
boolean |
isTemplate() |
boolean |
isTemplateParameter() |
boolean |
isUnique()
Return true if this type is a Collection type and has unique elements.
|
LibraryFeature |
lookupImplementation(DomainStandardLibrary standardLibrary,
DomainOperation staticOperation)
Return the dynamic (overloaded) implementation of the staticOperation applicable to the types managed
by the given Standard Library.
|
boolean |
oclEquals(OCLValue thatValue)
Return true if this is an equivalent OCL value to thatValue.
|
int |
oclHashCode() |
java.util.List<ParameterableElement> |
parameterableElements() |
void |
setInstanceClassName(java.lang.String newInstanceClassName) |
void |
setOwnedTemplateSignature(TemplateSignature newOwnedTemplateSignature) |
void |
setOwningTemplateParameter(TemplateParameter newOwningTemplateParameter) |
void |
setPackage(Package newPackage) |
void |
setTemplateParameter(TemplateParameter newTemplateParameter) |
void |
setUnspecializedElement(TemplateableElement newUnspecializedElement) |
DomainType |
specializeIn(DomainCallExp expr,
DomainType selfType) |
Type |
specializeIn(OCLExpression expr,
Type selfType) |
java.lang.String |
toString() |
boolean |
validateUniqueInvariantName(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
java.util.Map<java.lang.Object,java.lang.Object> context) |
createOwnedAnnotation, getName, getOwnedAnnotation, isStatic, setIsStatic, setNameallOwnedElements, create, createExtension, createOwnedComment, getExtension, getOwnedComment, getValuegetETarget, getTarget, isAdapterForType, notifyChanged, setTarget, unsetTargeteAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURIeAddVirtualValue, eAllContents, eBasicRemoveFromContainer, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainerAdapterArray, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedOperationID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicInvoke, eDynamicInvoke, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseRemove, eInvocationDelegate, eInvoke, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStaticOperationCount, eStore, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValueseBasicAdapterArray, eBasicHasAdapters, eNotificationRequired, eNotifyclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateOwnedAnnotation, getName, getOwnedAnnotation, isStatic, setIsStatic, setNameallOwnedElements, createExtension, createOwnedComment, getETarget, getExtension, getOwnedComment, getValueeAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnseteAdapters, eDeliver, eNotify, eSetDelivergetNameprotected org.eclipse.emf.common.util.EList<TemplateBinding> templateBinding
Template Binding' containment reference list.
getTemplateBinding()protected TemplateSignature ownedTemplateSignature
Owned Template Signature' containment reference.
getOwnedTemplateSignature()protected TemplateableElement unspecializedElement
Unspecialized Element' reference.
getUnspecializedElement()protected TemplateParameter templateParameter
Template Parameter' reference.
getTemplateParameter()protected org.eclipse.emf.common.util.EList<Property> ownedAttribute
Owned Attribute' containment reference list.
getOwnedAttribute()protected org.eclipse.emf.common.util.EList<Operation> ownedOperation
Owned Operation' containment reference list.
getOwnedOperation()protected org.eclipse.emf.common.util.EList<Type> superClass
Super Class' reference list.
getSuperClass()protected org.eclipse.emf.common.util.EList<Constraint> ownedInvariant
Owned Invariant' containment reference list.
getOwnedInvariant()protected static final java.lang.String INSTANCE_CLASS_NAME_EDEFAULT
Instance Class Name' attribute.
getInstanceClassName()protected java.lang.String instanceClassName
Instance Class Name' attribute.
getInstanceClassName()protected org.eclipse.emf.ecore.EClass eStaticClass()
eStaticClass in class NamedElementImplpublic java.util.List<TemplateBinding> getTemplateBinding()
getTemplateBinding in interface TemplateableElementPivotPackage.getTemplateableElement_TemplateBinding(),
TemplateBinding.getBoundElement()public TemplateBinding createTemplateBinding()
createTemplateBinding in interface TemplateableElementTemplateBinding.TemplateableElement.getTemplateBinding()public TemplateSignature getOwnedTemplateSignature()
getOwnedTemplateSignature in interface TemplateableElementTemplateableElement.setOwnedTemplateSignature(TemplateSignature),
PivotPackage.getTemplateableElement_OwnedTemplateSignature(),
TemplateSignature.getTemplate()public org.eclipse.emf.common.notify.NotificationChain basicSetOwnedTemplateSignature(TemplateSignature newOwnedTemplateSignature, org.eclipse.emf.common.notify.NotificationChain msgs)
public void setOwnedTemplateSignature(TemplateSignature newOwnedTemplateSignature)
setOwnedTemplateSignature in interface TemplateableElementnewOwnedTemplateSignature - the new value of the 'Owned Template Signature' containment reference.TemplateableElement.getOwnedTemplateSignature()public TemplateSignature createOwnedTemplateSignature()
createOwnedTemplateSignature in interface TemplateableElementTemplateSignature.TemplateableElement.getOwnedTemplateSignature()public TemplateableElement getUnspecializedElement()
getUnspecializedElement in interface TemplateableElementTemplateableElement.setUnspecializedElement(TemplateableElement),
PivotPackage.getTemplateableElement_UnspecializedElement()public void setUnspecializedElement(TemplateableElement newUnspecializedElement)
setUnspecializedElement in interface TemplateableElementnewUnspecializedElement - the new value of the 'Unspecialized Element' reference.TemplateableElement.getUnspecializedElement()public Package getPackage()
getPackage in interface DomainTypegetPackage in interface TypeType.setPackage(org.eclipse.ocl.examples.pivot.Package),
PivotPackage.getType_Package(),
Package.getOwnedType()public org.eclipse.emf.common.notify.NotificationChain basicSetPackage(Package newPackage, org.eclipse.emf.common.notify.NotificationChain msgs)
public void setPackage(Package newPackage)
setPackage in interface TypenewPackage - the new value of the 'Package' container reference.Type.getPackage()@NonNull public java.util.List<Property> getOwnedAttribute()
getOwnedAttribute in interface DomainTypegetOwnedAttribute in interface TypePivotPackage.getType_OwnedAttribute(),
Property.getOwningType()public Property createOwnedAttribute()
createOwnedAttribute in interface TypeProperty.Type.getOwnedAttribute()@NonNull public java.util.List<Operation> getOwnedOperation()
getOwnedOperation in interface DomainTypegetOwnedOperation in interface TypePivotPackage.getType_OwnedOperation(),
Operation.getOwningType()public Operation createOwnedOperation(org.eclipse.emf.ecore.EClass eClass)
createOwnedOperation in interface TypeeClass - The Ecore class of the Operation to create.Operation.Type.getOwnedOperation()public Operation createOwnedOperation()
createOwnedOperation in interface TypeOperation.Type.getOwnedOperation()@NonNull public java.util.List<Type> getSuperClass()
getSuperClass in interface TypePivotPackage.getType_SuperClass()@NonNull public java.util.List<Constraint> getOwnedInvariant()
getOwnedInvariant in interface DomainTypegetOwnedInvariant in interface TypePivotPackage.getType_OwnedInvariant()public Constraint createOwnedInvariant()
createOwnedInvariant in interface TypeConstraint.Type.getOwnedInvariant()public java.lang.String getInstanceClassName()
getInstanceClassName in interface TypeType.setInstanceClassName(String),
PivotPackage.getType_InstanceClassName()public void setInstanceClassName(java.lang.String newInstanceClassName)
setInstanceClassName in interface TypenewInstanceClassName - the new value of the 'Instance Class Name' attribute.Type.getInstanceClassName()public java.util.List<ParameterableElement> parameterableElements()
parameterableElements in interface TemplateableElementpublic boolean isTemplateParameter()
isTemplateParameter in interface ParameterableElementpublic boolean isCompatibleWith(ParameterableElement p)
isCompatibleWith in interface ParameterableElementpublic TemplateParameter getTemplateParameter()
getTemplateParameter in interface ParameterableElementParameterableElement.setTemplateParameter(TemplateParameter),
PivotPackage.getParameterableElement_TemplateParameter(),
TemplateParameter.getParameteredElement()public TemplateParameter basicGetTemplateParameter()
public org.eclipse.emf.common.notify.NotificationChain basicSetTemplateParameter(TemplateParameter newTemplateParameter, org.eclipse.emf.common.notify.NotificationChain msgs)
public void setTemplateParameter(TemplateParameter newTemplateParameter)
setTemplateParameter in interface ParameterableElementnewTemplateParameter - the new value of the 'Template Parameter' reference.ParameterableElement.getTemplateParameter()public boolean isSetTemplateParameter()
public TemplateParameter getOwningTemplateParameter()
getOwningTemplateParameter in interface ParameterableElementParameterableElement.setOwningTemplateParameter(TemplateParameter),
PivotPackage.getParameterableElement_OwningTemplateParameter(),
TemplateParameter.getOwnedParameteredElement()public org.eclipse.emf.common.notify.NotificationChain basicSetOwningTemplateParameter(TemplateParameter newOwningTemplateParameter, org.eclipse.emf.common.notify.NotificationChain msgs)
public void setOwningTemplateParameter(TemplateParameter newOwningTemplateParameter)
setOwningTemplateParameter in interface ParameterableElementnewOwningTemplateParameter - the new value of the 'Owning Template Parameter' container reference.ParameterableElement.getOwningTemplateParameter()public boolean isTemplate()
isTemplate in interface TemplateableElementpublic org.eclipse.emf.common.notify.NotificationChain eInverseAdd(org.eclipse.emf.ecore.InternalEObject otherEnd,
int featureID,
org.eclipse.emf.common.notify.NotificationChain msgs)
eInverseAdd in class ElementImplpublic org.eclipse.emf.common.notify.NotificationChain eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd,
int featureID,
org.eclipse.emf.common.notify.NotificationChain msgs)
eInverseRemove in class NamedElementImplpublic org.eclipse.emf.common.notify.NotificationChain eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)
eBasicRemoveFromContainerFeature in class org.eclipse.emf.ecore.impl.BasicEObjectImplpublic java.lang.Object eGet(int featureID,
boolean resolve,
boolean coreType)
eGet in interface org.eclipse.emf.ecore.InternalEObjecteGet in class NamedElementImplpublic void eSet(int featureID,
java.lang.Object newValue)
eSet in interface org.eclipse.emf.ecore.InternalEObjecteSet in class NamedElementImplpublic void eUnset(int featureID)
eUnset in interface org.eclipse.emf.ecore.InternalEObjecteUnset in class NamedElementImplpublic boolean eIsSet(int featureID)
eIsSet in interface org.eclipse.emf.ecore.InternalEObjecteIsSet in class NamedElementImplpublic int eBaseStructuralFeatureID(int derivedFeatureID,
java.lang.Class<?> baseClass)
eBaseStructuralFeatureID in interface org.eclipse.emf.ecore.InternalEObjecteBaseStructuralFeatureID in class org.eclipse.emf.ecore.impl.BasicEObjectImplpublic int eDerivedStructuralFeatureID(int baseFeatureID,
java.lang.Class<?> baseClass)
eDerivedStructuralFeatureID in interface org.eclipse.emf.ecore.InternalEObjecteDerivedStructuralFeatureID in class org.eclipse.emf.ecore.impl.BasicEObjectImplpublic int eDerivedOperationID(int baseOperationID,
java.lang.Class<?> baseClass)
eDerivedOperationID in interface org.eclipse.emf.ecore.InternalEObjecteDerivedOperationID in class org.eclipse.emf.ecore.impl.BasicEObjectImplpublic java.lang.Object eInvoke(int operationID,
org.eclipse.emf.common.util.EList<?> arguments)
throws java.lang.reflect.InvocationTargetException
eInvoke in interface org.eclipse.emf.ecore.InternalEObjecteInvoke in class ElementImpljava.lang.reflect.InvocationTargetExceptionpublic java.lang.String toString()
toString in class NamedElementImplpublic <R> R accept(@NonNull
Visitor<R> visitor)
VisitableImplementations of visit() may use the EcoreSwitch to perform derived-class-specific processing.
Derived implementations of accept() may use getAdapter() to obtain richer visitor interfaces.
accept in interface Visitableaccept in class NamedElementImplpublic boolean conformsTo(@NonNull
DomainStandardLibrary standardLibrary,
@NonNull
DomainType type)
DomainTypeconformsTo in interface DomainType@NonNull public org.eclipse.emf.ecore.EObject createInstance()
DomainTypeDomainProperty#initValue(DomainStandardLibrary, ObjectValue, Value) provided no side-effect free
OCL functionality is permitted to use the ObjectValue until initialisation has completed.createInstance in interface DomainType@Nullable
public java.lang.Object createInstance(@NonNull
java.lang.String value)
DomainTypecreateInstance in interface DomainTypevalue - string initial value@NonNull public DomainType getCommonType(@NonNull IdResolver idResolver, @NonNull DomainType type)
DomainTypegetCommonType in interface DomainType@NonNull public DomainInheritance getInheritance(@NonNull DomainStandardLibrary standardLibrary)
DomainTypegetInheritance in interface DomainType@NonNull public DomainType getNormalizedType(@NonNull DomainStandardLibrary standardLibrary)
DomainTypegetNormalizedType in interface DomainType@NonNull public java.util.List<? extends DomainOperation> getLocalOperations()
getLocalOperations in interface DomainType@NonNull public java.util.List<? extends DomainProperty> getLocalProperties()
getLocalProperties in interface DomainType@NonNull public java.util.List<? extends DomainType> getLocalSuperTypes()
getLocalSuperTypes in interface DomainType@NonNull public java.lang.String getMetaTypeName()
DomainTypegetMetaTypeName in interface DomainType@NonNull public DomainTypeParameters getTypeParameters()
DomainTypegetTypeParameters in interface DomainType@NonNull public TypeId getTypeId()
DomainTypegetTypeId in interface DomainType@NonNull public TypeId computeId()
public boolean isEqualTo(@NonNull
DomainStandardLibrary standardLibrary,
@NonNull
DomainType type)
DomainTypeisEqualTo in interface DomainTypepublic boolean isEqualToUnspecializedType(@NonNull
DomainStandardLibrary standardLibrary,
@NonNull
DomainType type)
isEqualToUnspecializedType in interface DomainTypepublic boolean isInvalid()
DomainTypeisInvalid in interface DomainTypepublic boolean isOrdered()
DomainTypeisOrdered in interface DomainTypepublic boolean isUnique()
DomainTypeisUnique in interface DomainType@NonNull public LibraryFeature lookupImplementation(@NonNull DomainStandardLibrary standardLibrary, @NonNull DomainOperation staticOperation)
DomainTypelookupImplementation in interface DomainTypepublic boolean oclEquals(@NonNull
OCLValue thatValue)
OCLValueNote that the caller must check that the argument is an OCLValue and should also check for the shortcut case that this == thatValue. Implementations are therefore wasting time if they re-implement the shortcut.
public int oclHashCode()
oclHashCode in interface OCLValuepublic Type specializeIn(OCLExpression expr, Type selfType)
TypespecializeIn in interface Typepublic boolean validateUniqueInvariantName(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
java.util.Map<java.lang.Object,java.lang.Object> context)
validateUniqueInvariantName in interface Typepublic DomainType specializeIn(@NonNull DomainCallExp expr, DomainType selfType)
specializeIn in interface DomainType@NonNull public java.util.List<? extends DomainConstraint> getOwnedRule()
getOwnedRule in interface DomainNamespace