@GenerateAstNode(implementing=Statement.class) class SuperConstructorInvocationTemplate { Expression qualifier1; List<TypeReference> constructorTypeArguments2; List<Expression> arguments3; }
@GenerateAstNode(implementing=Statement.class) class AlternateConstructorInvocationTemplate { List<TypeReference> constructorTypeArguments1; List<Expression> arguments2; }
@GenerateAstNode(implementing=Statement.class) class AssertTemplate { @Mandatory Expression assertion1; Expression message2; }
@GenerateAstNode(implementing=Statement.class) class BreakTemplate { @ForcedType Identifier label1; @CopyMethod static boolean hasLabel(Break self) { return self.astLabel() != null; } }
@GenerateAstNode(implementing=Statement.class) class BreakTemplate { @ForcedType Identifier label1; @CopyMethod static boolean hasLabel(Break self) { return self.astLabel() != null; } }
@GenerateAstNode(implementing=Statement.class) class ContinueTemplate { @ForcedType Identifier label1; @CopyMethod static boolean hasLabel(Continue self) { return self.astLabel() != null; } }
@GenerateAstNode(implementing=Expression.class, mixin=ExpressionMixin.class) class ArrayAccessTemplate { @Mandatory Expression operand1; @Mandatory Expression indexExpression2; }
@GenerateAstNode(implementing={Expression.class, DescribedNode.class}, mixin=ExpressionMixin.class) class MethodInvocationTemplate { Expression operand1; List<TypeReference> methodTypeArguments2; @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier name3; List<Expression> arguments4; @CopyMethod static String getDescription(MethodInvocation self) { return self.astName().astValue(); } }
@GenerateAstNode(implementing={Expression.class, DescribedNode.class}, mixin=ExpressionMixin.class) class ClassLiteralTemplate { @ParentAccessor @Mandatory TypeReference typeReference1; @CopyMethod static String getDescription(ClassLiteral self) { try { return self.astTypeReference().getDescription(); } catch (NullPointerException e) { return null; } } }
@GenerateAstNode(implementing=Statement.class) class WhileTemplate { @Mandatory Expression condition1; @Mandatory Statement statement2; }
@GenerateAstNode(implementing=Statement.class) class SwitchTemplate { @Mandatory Expression condition1; @ParentAccessor @Mandatory Block body2; }
@GenerateAstNode(implementing=Statement.class) class SynchronizedTemplate { @Mandatory Expression lock1; @ParentAccessor @Mandatory Block body2; }
@GenerateAstNode(implementing=Expression.class, mixin=ExpressionMixin.class) class SelectTemplate { @Mandatory Expression operand1; @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier identifier2; }
@GenerateAstNode(implementing={Statement.class, DescribedNode.class}) class LabelledStatementTemplate { @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier label1; @Mandatory Statement statement2; @CopyMethod static String getDescription(LabelledStatement self) { return self.astLabel().astValue(); } }
@GenerateAstNode(implementing=Statement.class) class TryTemplate { @ParentAccessor("TryBody") @Mandatory Block body1; @ParentAccessor List<Catch> catches2; @ParentAccessor("Finally") Block finally_3; }
@GenerateAstNode(implementing=Statement.class) class TryTemplate { @ParentAccessor("TryBody") @Mandatory Block body1; @ParentAccessor List<Catch> catches2; @ParentAccessor("Finally") Block finally_3; }
@GenerateAstNode(implementing=Statement.class) class TryTemplate { @ParentAccessor("TryBody") @Mandatory Block body1; @ParentAccessor List<Catch> catches2; @ParentAccessor("Finally") Block finally_3; }
@GenerateAstNode(implementing={TypeMember.class, DescribedNode.class, JavadocContainer.class}, mixin=TypeMemberMixin.class) class AnnotationMethodDeclarationTemplate { Comment javadoc1; @ParentAccessor @Mandatory("new lombok.ast.Modifiers()") @ForcedType Modifiers modifiers2; @Mandatory TypeReference returnTypeReference3; @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier methodName4; Expression defaultValue5; @CopyMethod static String getDescription(AnnotationMethodDeclaration self) { return self.astMethodName().astValue(); } }
@GenerateAstNode(implementing={TypeMember.class, JavadocContainer.class}, mixin=TypeMemberMixin.class) class ConstructorDeclarationTemplate { Comment javadoc1; @ParentAccessor @Mandatory("new lombok.ast.Modifiers()") @ForcedType Modifiers modifiers2; List<TypeVariable> typeVariables3; @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier typeName4; @ParentAccessor("Parameter") List<VariableDefinition> parameters5; List<TypeReference> thrownTypeReferences6; @ParentAccessor @Mandatory Block body7; //TODO test if our syntax checkers flag misnamed constructors. }
@GenerateAstNode(implementing={TypeMember.class, JavadocContainer.class}, mixin=TypeMemberMixin.class) class ConstructorDeclarationTemplate { Comment javadoc1; @ParentAccessor @Mandatory("new lombok.ast.Modifiers()") @ForcedType Modifiers modifiers2; List<TypeVariable> typeVariables3; @Mandatory("new lombok.ast.Identifier()") @ForcedType Identifier typeName4; @ParentAccessor("Parameter") List<VariableDefinition> parameters5; List<TypeReference> thrownTypeReferences6; @ParentAccessor @Mandatory Block body7; //TODO test if our syntax checkers flag misnamed constructors. }