001: package com.metaboss.sdlctools.models.metabossmodel;
002:
003: /**
004: * ModelElement object instance interface.
005: * <p>
006: * The abstract superclass of every element in the MetaBoss model.
007: * </p>
008: */
009: public interface ModelElement extends javax.jmi.reflect.RefObject {
010: /**
011: * @return
012: */
013: public java.lang.String getRef();
014:
015: /**
016: * @param pAttachmentName
017: * @return
018: */
019: public com.metaboss.sdlctools.models.metabossmodel.ModelElementAttachment getAttachment(
020: java.lang.String pAttachmentName);
021:
022: /**
023: * @param pAttachmentName
024: * @return
025: */
026: public com.metaboss.sdlctools.models.metabossmodel.ModelElementAttachment findAttachment(
027: java.lang.String pAttachmentName);
028:
029: /**
030: * @return
031: */
032: public java.util.Collection getContents();
033:
034: /**
035: * Returns all elements contained by this element at any depth of the containment
036: * tree. Excludes this element itself.
037: * @return Returns all elements contained by this element at any depth of
038: * the containment tree. Excludes this element itself.
039: */
040: public java.util.Collection getCombinedContents();
041:
042: /**
043: * Returns read only collection of objects referenced by this one. This includes
044: * all kinds of references - singular and plural, containment etc.
045: * @return Returns read only collection of objects referenced by this one.
046: * This includes all kinds of references - singular and plural, containment
047: * etc.
048: */
049: public java.util.Collection getReferencedElements();
050:
051: /**
052: * Checks if this element is contained at any depth by the given element and
053: * returns true if it is contained.
054: * @param pContainerElement
055: * @return Checks if this element is contained at any depth by the given element
056: * and returns true if it is contained.
057: */
058: public boolean isContainedWithin(
059: com.metaboss.sdlctools.models.metabossmodel.ModelElement pContainerElement);
060:
061: /**
062: * Tests if given ModelElement can be directly or indirectly owned by this
063: * ModelElement. Returns true if this ModelElement itself or any of the ModelElements
064: * it owns (at any depth of hierarchy) can be an owner of the given ModelElement.
065: * @param pModelElement
066: * @return Tests if given ModelElement can be directly or indirectly owned
067: * by this ModelElement. Returns true if this ModelElement itself or any of
068: * the ModelElements it owns (at any depth of hierarchy) can be an owner
069: * of the given ModelElement.
070: */
071: public boolean mayContainWithin(
072: com.metaboss.sdlctools.models.metabossmodel.ModelElement pModelElement);
073:
074: /**
075: * Returns true if this ModelElement is managed by model assistant and therefore
076: * is derived from other parts of the model.
077: * @return Returns true if this ModelElement is managed by model assistant
078: * and therefore is derived from other parts of the model.
079: */
080: public boolean isDerived();
081:
082: /**
083: * Tests if given ModelElement can be directly owned by this ModelElement.
084: * Returns true if this ModelElement can directly own given ModelElement
085: * @param pModelElement
086: * @return Tests if given ModelElement can be directly owned by this ModelElement.
087: * Returns true if this ModelElement can directly own given ModelElement
088: */
089: public boolean mayContain(
090: com.metaboss.sdlctools.models.metabossmodel.ModelElement pModelElement);
091:
092: /**
093: * Returns the value of attribute Name.
094: * @return Value of attribute Name.
095: */
096: public java.lang.String getName();
097:
098: /**
099: * Sets the value of Name attribute. See {@link #getName} for description
100: * on the attribute.
101: * @param newValue New value to be set.
102: */
103: public void setName(java.lang.String newValue);
104:
105: /**
106: * Returns the value of attribute Description.
107: * @return Value of attribute Description.
108: */
109: public java.lang.String getDescription();
110:
111: /**
112: * Sets the value of Description attribute. See {@link #getDescription} for
113: * description on the attribute.
114: * @param newValue New value to be set.
115: */
116: public void setDescription(java.lang.String newValue);
117:
118: /**
119: * Returns the value of attribute OwnerIdentifier.
120: * Optional identifier of the party who is responsible for the creation,deletion
121: * and validity of this model element. At the moment used to resolve conflicts
122: * between automatic model assistants. At the moment always empty for the
123: * objects created by humans.
124: * @return Value of attribute OwnerIdentifier.
125: */
126: public java.lang.String getOwnerIdentifier();
127:
128: /**
129: * Sets the value of OwnerIdentifier attribute. See {@link #getOwnerIdentifier}
130: * for description on the attribute.
131: * @param newValue New value to be set.
132: */
133: public void setOwnerIdentifier(java.lang.String newValue);
134:
135: /**
136: * Returns the value of reference tags.
137: * @return Value of reference tags.
138: */
139: public java.util.Collection getTags();
140:
141: /**
142: * Returns the value of reference attachments.
143: * @return Value of reference attachments.
144: */
145: public java.util.Collection getAttachments();
146:
147: /**
148: * Returns the value of reference diagramModelElements.
149: * @return Value of reference diagramModelElements.
150: */
151: public java.util.Collection getDiagramModelElements();
152: }
|