Interface Associator

  • All Known Subinterfaces:
    TransformationContext

    public interface Associator
    Associates generated Java elements with their source Xtend elements
    Since:
    2.7
    See Also:
    Tracability
    Noimplement:
    This interface is not intended to be implemented by clients.
    • Method Detail

      • setPrimarySourceElement

        void setPrimarySourceElement​(MutableElement javaElement,
                                     Element sourceElement)
        Associates the generate element with the Xtend source code. Every generated element should have a source element. This information is used by features like "Go to Declaration" and the outline view. A typical use case (generating a getter for a field) would look like this:
         myClass.declaredFields.forEach[field|
          myClass.addMethod("get" + field.simpleName.toFirstUpper) [
           primarySourceElement = field
           // return type, body etc...
          ]
         ]
         
        This way, the getter generated in the active annotation above would be associated with the field in the Xtend source code. Notice that we passed the field from the Java AST as a source element. This is a shortcut for
         primarySourceElement = field.primarySourceElement
         
        Parameters:
        sourceElement - the source element that the secondaryElement was derived from
        javaElement - the generated Java element