Annotation Type OperationMeta


  • @Target(METHOD)
    @Retention(RUNTIME)
    public @interface OperationMeta
    Marker annotation for providing details for a VIL operation implementation. For detailing operation parameters, see ParameterMeta.
    Author:
    Holger Eichelberger
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean allowsAggregation
      Whether iterator aggregation (first declarator with default value denotes result value and type) is supported or not.
      boolean flatten
      Whether the result type shall be flattened to a non-collection type.
      int[] genericArgument
      Denotes the index values of the generic parameters to be replaced by the given argument types.
      java.lang.String[] name
      The actual names of the operation as it shall appear in VIL.
      java.lang.String[] notOclCompliant
      Which names from name() is not OCL compliant.
      OperationType opType
      The type of this operation.
      The operation type (OperationType.NORMAL by default)
      boolean requiresDynamicExpressionProcessing
      Indicates whether this function requires dynamic expression processing and may cause problems with serialized models in standalone settings without xText.
      Whether dynamic expression processing is required (default false)
      java.lang.Class<?>[] returnGenerics
      The generic parameters of the return type.
      java.lang.Class<?> returnType
      Allows overriding the actual return type, e.g., to nail down covariant return types that may be resolved in reflection to the type of the overridden base method.
      boolean storeArtifactsBefore
      Whether artifacts in the current context shall be stored before executing this operation.
      boolean trace
      Disables tracing the execution, e.g., in case of output operations.
      boolean useAny
      If Any/Object is the return type, don't override this when resolving expression results.
      int useGenericParameter
      Whether a generic parameter (index) of the operand shall be used as return type.
      boolean useOperandTypeAsParameter
      Use the actual operand type as parameter.
      int useParameter
      Whether a parameter (0-based index) shall be used as return type.
    • Element Detail

      • name

        java.lang.String[] name
        The actual names of the operation as it shall appear in VIL. This supersedes the original operation name.
        Returns:
        the name
        Default:
        {}
      • notOclCompliant

        java.lang.String[] notOclCompliant
        Which names from name() is not OCL compliant. Only aliases shall be given here.
        Returns:
        the names
        Default:
        {}
      • opType

        OperationType opType
        The type of this operation.
        The operation type (OperationType.NORMAL by default)
        Returns:
        the type
        Default:
        net.ssehub.easy.instantiation.core.model.vilTypes.OperationType.NORMAL
      • returnGenerics

        java.lang.Class<?>[] returnGenerics
        The generic parameters of the return type. This is required as the type parameters of Java generics cannot be accessed. Generics of complex types are just given in linear sequence. Empty by default.
        Returns:
        the generic parameter types
        Default:
        {}
      • returnType

        java.lang.Class<?> returnType
        Allows overriding the actual return type, e.g., to nail down covariant return types that may be resolved in reflection to the type of the overridden base method. Must be compliant to the method declaration. Default value is the void.class.
        Returns:
        the actual return type
        Default:
        void.class
      • useGenericParameter

        int useGenericParameter
        Whether a generic parameter (index) of the operand shall be used as return type. Unused by default. Disregards first implicit parameter. Only for collection operations.
        Returns:
        the 0-based parameter index (default -1)
        Default:
        -1
      • useParameter

        int useParameter
        Whether a parameter (0-based index) shall be used as return type. Unused by default (-1). If Integer.MAX_VALUE all parameters are taken over.
        Returns:
        the 0-based index
        Default:
        -1
      • useOperandTypeAsParameter

        boolean useOperandTypeAsParameter
        Use the actual operand type as parameter.
        Returns:
        the operand type
        Default:
        false
      • storeArtifactsBefore

        boolean storeArtifactsBefore
        Whether artifacts in the current context shall be stored before executing this operation. Such operations have more precendece than dynamic auto-store preferences (exclusion) in the runtime environment.
        Returns:
        whether artifacts in the current context shall be stored before executing this operation
        Default:
        false
      • requiresDynamicExpressionProcessing

        boolean requiresDynamicExpressionProcessing
        Indicates whether this function requires dynamic expression processing and may cause problems with serialized models in standalone settings without xText.
        Whether dynamic expression processing is required (default false)
        Returns:
        whether dynamic expression processing is required
        Default:
        false
      • trace

        boolean trace
        Disables tracing the execution, e.g., in case of output operations.
        Returns:
        whether tracing is enabled (default true)
        Default:
        true
      • genericArgument

        int[] genericArgument
        Denotes the index values of the generic parameters to be replaced by the given argument types. Negative values indicate that the given argument types shall be used. May be required to force / enable automatic conversion.
        Returns:
        the generic arguments as 0-based indexes
        Default:
        {}
      • allowsAggregation

        boolean allowsAggregation
        Whether iterator aggregation (first declarator with default value denotes result value and type) is supported or not. Default is not supported.
        Returns:
        true if iterator aggregation is supported, false (default)
        Default:
        false
      • useAny

        boolean useAny
        If Any/Object is the return type, don't override this when resolving expression results.
        Returns:
        if Any/Object is the return type
        Default:
        false
      • flatten

        boolean flatten
        Whether the result type shall be flattened to a non-collection type.
        Returns:
        flatten if true, no flattening if false
        Default:
        false