blob: fe1e095dab12591dabd34b37c1f8e2938f3258e4 [file] [log] [blame]
h3. General Concepts
h4. Grouping of elements (Tags, Tag groups)
It is possible to use "Tags":./model_common.html#common-tags for grouping elements of the model.
h4. Custom Properties
The AMALTHEA model provides "Custom Properties":./model_basics.html#basics-custom-props to enhance the model in a generic way. These can be used for different kind of purpose:
* Store attributes, which are relevant for your model, but not yet available at the elements
* Processing information of algorithms can be stored in that way, e.g. to mark an element as already processed
h4. Support of Packages
In Amalthea model _(from APP4MC 0.9.7 version)_ there is a feature to support grouping of following model elements listed below in a package:
* Component
* Composite
* MainInterface
bq. Above mentioned classes are implementing interface *IComponentStructureMember*
*ComponentStructure* element in Amalthea model represents a package, and this can be referred by above mentioned elements.
h5. Example of using Package
Amalthea model contains a parent ComponentStructure "BC" and two child ComponentStructure's "FC1", "FC2".
* Component element "Comp3" is associated to ComponentStructure "FC1" and the Component element "Comp4" is associated to ComponentStructure "FC2"
This representation demonstrates the grouping of the elements into different packages.
!(gray_scale)../pictures/user_guide_package_support.png!
h4. Support of Namespaces
In Amalthea model _(from APP4MC 0.9.7 version)_ there is a feature to have Namespace for the following model elements (__which are implementing interface *INamespaceMember*__):
* BaseTypeDefinition
* Channel
* Component
* Composite
* DataTypeDefinition
* Label
* MainInterface
* Runnable
* TypeDefinition
Advantage of having Namespace is, there can be multiple elements defined with the same name but with different Namespace __(this feature will also be helpful to support c++ source code generation )__. If Namspace is specified in Amalthea model for a specific model element, then its unique name is built by considering the "Namespace text + name of the element"
h5. Example of using Namespace
As shown in the below screenshot, there are two Component elements with the name "Comp1" but referring to different Namespace objects, which is making them unique. In this case, display in the UI editor is also updated by showing the Namespace in the prefix for the Amalthea element name.
!(gray_scale)../pictures/user_guide_namespace_support.png!
Below is the text representation of the Amalthea model which shows the ComponentInstance elements referring to different Component elements. As mentioned above, highlighted text shows that unique name of the Component element __(built by including the associated Namespace to the Component element)__ is used all the places where it is referenced __(to make it unique)__
!(gray_scale)../pictures/user_guide_namespace_support_xmlcontent.png!
*Additional Information*:
* As soon as Namespace elements are used in Amalthea model, AMXMI file is updated with additional attribute xmi:id for all elements implementing IReferable interface.
* On Amalthea model element implementing INamed interface, in addition to getName() API, getQualifiedName() API is available which returns <namespace string value>.getName()