11.1.2. List of predefined attribute retrievers

PhysicalFilterName

This retriever only works in the context of a logical model and will return the physical architecture filter name of a component. The component in this case would be a logical element, e.g. a class. The result is the architecture filter name of the physical component containing this element. Using this retriever allows you to mix physical and logical assignment strategies in a logical model.

WorkspaceFilterName

This retriever will return the workspace filter of any component. The workspace filter name is the relative path of the source file containing an element. This can be useful to separate assignment by root directory (e.g. test code versus generated code), since root directories are not part of any architecture filter name.

JavaHasAnnotation

This retriever only works for Java and will match if the pattern matches the fully qualified Java name of any annotation of a class. In a physical model if a Java file has more than one top level type we only consider the Java class that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

artifact Controller
{
    include "JavaHasAnnotation: **Controller"
}
		

This example will match any class that has an annotation ending with "Controller".

JavaExtendsClass

This retriever only works for Java and will match if the pattern matches the fully qualified Java name of any direct or indirect base class of a class. In a physical model if a Java file has more than one top level type we only consider the Java class that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

JavaImplementsInterface

This retriever only works for Java and will match if the pattern matches the fully qualified Java name of any interface implemented by the class. In a physical model if a Java file has more than one top level type we only consider the Java class that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

JavaHasAnnotationValue

This retriever only works for Java and will match if the pattern matches value of a specific annotation of a class. It has two parameters: the fully qualified Java name of the annotation class and the name of the annotation property to extract. In a physical model if a Java file has more than one top level type we only consider the Java class that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

CSharpExtendsClass

This retriever only works for C# and will match if the pattern matches the fully qualified C# name (namespace plus class name separated by '.') of any direct or indirect base class of a class. In a physical model a C# file will only be considered if it contains a type that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

CSharpImplementsInterface

This retriever only works for C# and will match if the pattern matches the fully qualified C# name (namespace plus class name separated by '.') of any interface implemented by the class. In a physical model a C# file will only be considered if it contains a type that has the same name as the file. Please note that "*" will match anything except dots ('.') for this retriever.

CppExtendsClass

This retriever only works for C++ and will match if the pattern matches the fully qualified C++ name (namespace plus class name with '.' as separator) of any direct or indirect base class of a class. In a physical model a C++ component will only be considered if it contains a type that has the same name as the component. Please note that "*" will match anything except dots ('.') for this retriever.