com.hammurapi.common

## Annotation Type Condition

-     @Target(value={METHOD,PARAMETER})
      @Retention(value=RUNTIME)
      public @interface Condition

  Condition annotation can be used instead of accept methods for parameters and if () blocks inside infer methods.

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `String[]` | `value` Condition definition has the following format `[language(parameter list)://] condition expression`.

- - ### Element Detail

    - #### value

          public abstract String[] value

      Condition definition has the following format `[language(parameter list)://] condition expression`. Default language is Java. If language is not Java, then Extractor framework is used to look up a extractor provider to create extractor from the expression. Parameter list is a comma separated list of parameter names, parameters not used in the condition expression can be omitted. E.g. `parent, child, sibling` or, if `child` is not used in the condition expression `parent,,sibling`. If parameter list is omitted, then arguments can be accessed through `args` array for method level conditions and `arg` for parameter level conditions. Condition expression is a fragment of Java code returning boolean. Handler method's declaring class instance is available through `eCtx` parameter.