| group model; |
| |
| ElementType(element) ::= << |
| $({$element.class.simpleName$})(element = element)$ |
| >> |
| |
| Modifier(element) ::= << |
| $element$ |
| >> |
| |
| SigAnnotation(element) ::= << |
| @$ElementType(element = element.type)$ |
| $if(element.elements)$ |
| {$element.elements:{$SigAnnotationElement(element=it)$}$} |
| $endif$ |
| >> |
| |
| SigAnnotationElement(element) ::= << |
| $element.declaringField.name$=$element.value$ |
| >> |
| |
| SigAnnotationField(element) ::= << |
| $SigField(element = element)$ $if(element.defaultValue)$ default=$element.defaultValue$$endif$ |
| >> |
| |
| SigArrayType(element) ::= << |
| $ElementType(element = element.componentType)$[] |
| >> |
| |
| |
| SigClassDefinition(element) ::= << |
| $Annotations(element = element)$ |
| $Modifiers(element = element)$$element.kind$ $element:ClassReferenceLink(link_style="discreet")$ |
| $TypeParameters(element = element)$ |
| $if(element.superClass)$ extends $ElementType(element=element.superClass)$$endif$ |
| $if(element.interfaces)$ implements $element.interfaces:{$ElementType(element=it)$}; separator=", "$$endif$ |
| >> |
| |
| ClassReferenceProjection(element) ::= << |
| $SigClassReference(element= element)$ |
| >> |
| |
| SigClassReference(element) ::= << |
| $ClassReferenceLink(it = element.classDefinition, link_style="discreet")$ |
| >> |
| |
| SigConstructor(element) ::= << |
| $Annotations(element= element, separator=" ")$ |
| $Modifiers(element= element)$ |
| $TypeParameters(element= element)$ |
| $SigExecutableMember(element= element)$ |
| >> |
| |
| //FIXME add SigEnumConstantReference to format correct in either case |
| SigEnumConstant(element) ::= << |
| enum constant $ElementType(element=element.type)$.$element.name$ |
| >> |
| |
| SigExecutableMember(element) ::= << |
| $element.name$($element.parameters:{$SigParameter(element=it)$}; separator=", "$) |
| $if(element.exceptions)$ throws $element.exceptions:{$ElementType(element=it)$}; separator=", "$$endif$ |
| >> |
| |
| SigField(element) ::= << |
| $Annotations(element = element, separator="<br/>")$ |
| $Modifiers(element = element)$$ElementType(element=element.type)$ $element.name$ |
| >> |
| |
| MethodProjection(element) ::= << |
| $SigMethod(element=element)$ |
| >> |
| |
| SigMethod(element) ::= << |
| $Annotations(element=element)$ |
| $Modifiers(element=element)$ |
| $TypeParameters(element=element)$ |
| $ElementType(element=element.returnType)$ $SigExecutableMember(element = element)$ |
| >> |
| |
| SigPackage(element) ::= << |
| $element.name$ |
| >> |
| |
| SigParameter(element) ::= << |
| $Annotations(element = element, separator=" ")$ |
| $ElementType(element=element.type)$ |
| >> |
| |
| ParameterizedTypeProjection(element) ::= << |
| $SigParameterizedType(element = element)$ |
| >> |
| |
| SigParameterizedType(element) ::= << |
| $if(element.ownerType)$$ElementType(element=element.ownerType)$$endif$ |
| $SigClassReference(element=element.rawType)$ |
| $if(element.typeArguments)$<$element.typeArguments:{$ElementType(element=it)$}$>$endif$ |
| >> |
| |
| SigPrimitiveType(element) ::= << |
| $element.name$ |
| >> |
| |
| SigTypeVariableDefinition(element) ::= << |
| $element.name$$if(!element.upperBounds.empty)$ extends $element.upperBounds:{$ElementType(element=it)$}; separator=", "$$endif$ |
| >> |
| |
| SigTypeVariableReference(element) ::= << |
| $element.typeVariableDefinition.name$ |
| >> |
| |
| SigWildcardType(element) ::= << |
| ? |
| $if(element.lowerBound)$ super $ElementType(element=element.lowerBound)$$endif$ |
| $if(!element.upperBounds.empty)$ extends $element.upperBounds:{$ElementType(element=it)$}; separator=", "$$endif$ |
| >> |
| |
| |
| /* helper templates*/ |
| |
| Modifiers(element) ::= << |
| $if(element.modifiers)$ |
| $element.modifiers; separator=" "$$\ $ |
| $endif$ |
| >> |
| |
| Annotations(element, separator) ::= << |
| $if(element.annotations)$ |
| $element.annotations:{$SigAnnotation(element=it)$}; separator=separator$ |
| $separator$ |
| $endif$ |
| >> |
| |
| TypeParameters(element) ::= << |
| $if(element.typeParameters)$ <$element.typeParameters:{$SigTypeVariableDefinition(element=it)$}; separator=", "$>$endif$ |
| >> |