The Frank!Doc provides reference information for Frank developers as explained in CONTRIBUTING.md. It is produced by a doclet that assembles the Frank!Doc from the Java sources. You can control the Frank!Doc using custom JavaDoc tags and using Frank!Doc-related Java annotations. These annotations and tags are summarized in the table below:
JavaDoc Tag | Java annotation | Appears on | Function |
---|---|---|---|
@FrankDocGroup |
Class or interface | Define group as shown in top-left of webapp. Has fields name and order (integer). |
|
@ff.parameters |
Class | Describes how parameters (Frank config <Param> ) are used. |
|
@ff.parameter |
Class | Describes the meaning of a specific parameter. First argument is name of parameter. Second argument is description of that parameter. | |
@ff.forward |
Class | Describes a forward (e.g. success , failure ). First argument is name of forward. Second argument is description. |
|
@ff.tag |
Class | Tag that classifies the Java class. First argument is tag name, second argument is tag value. | |
@ff.default |
@Default |
Attribute setter | Describes default value. |
@ff.protected |
@Protected |
Attribute setter, child setter or class | Suppresses declaration and inheritance of attribute, child or element. Annotation is inherited. |
@ff.mandatory |
@Mandatory |
Attribute or child setter | Makes attribute or child mandatory in Frank config. |
@ff.optional |
@Optional |
Attribute or child setter | Undoes inherited @ff.mandatory , making the attribute or child optional even if it overrides a mandatory attribute or child. |
@ff.defaultElement |
Child setter | Set default value of className attribute in XSD syntax 1 element. |
|
@EnumLabel |
Enum constant | Set representation required in Frank configs. |
Annotation @FrankDocGroup, on interface: When a Java class implements an interface that has a @FrankDocGroup
annotation, then the class is put in the group non-exclusively. A class can belong to multiple groups when it implements multiple interfaces with different groups.
Annotation @FrankDocGroup, on class: When a class has a @FrankDocGroup
annotation, then the class only belongs to that group. @FrankDocGroup
annotations on classes are inherited by descendant classes, so descendant classes are also in the specified group exclusively.
@ff.mandatory and @Mandatory: If you give the JavaDoc tag the value ignoreInCompatibilityMode
, the attribute or config child will not be mandatory in FrankConfig-compatibility.xsd
. This behavior may be useful for backward compatibility. The annotation has a Boolean field ignoreInCompatibilityMode
that does the same.
@ff.protected and @Protected: If a config child setter has a non-interface Java class as its argument and if that class has or inherits this annotation, then no config child is created.