10.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 type 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".

JavaTypeOf

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

JavaExtendsClass

This retriever only works for Java and will match if the pattern matches the fully qualified type 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 type 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.

CSharpTypeOf

This retriever only works for C# and will match if the pattern matches the fully qualified type name (namespace plus class name separated by '.') of any direct or indirect super type. 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.

CSharpExtendsClass

This retriever only works for C# and will match if the pattern matches the fully qualified type 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 type 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 type 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.

CppHeaderPath

This retriever only works for physical models in C and C++ and will match if the pattern matches the identifying path of the main header file of a component. The main header is the header file that has the name of the component, while the identifying path is the relative path of the header relative to the Sonargraph system directory. Use this retriever if the location of a header file is more relevant for the architecture than the source file location.

TIP

Some attribute retrievers require a fully qualified type name. The Properties view shows the "Fully Qualified Type Name" property for a selected type and you can copy it from there.