@GenerateAstNode class CompilationUnitTemplate { @ParentAccessor PackageDeclaration packageDeclaration1; @ParentAccessor List<ImportDeclaration> importDeclarations2; @ParentAccessor("TopLevel") List<TypeDeclaration> typeDeclarations3; }
@GenerateAstNode class CompilationUnitTemplate { @ParentAccessor PackageDeclaration packageDeclaration1; @ParentAccessor List<ImportDeclaration> importDeclarations2; @ParentAccessor("TopLevel") List<TypeDeclaration> typeDeclarations3; }
@GenerateAstNode class CompilationUnitTemplate { @ParentAccessor PackageDeclaration packageDeclaration1; @ParentAccessor List<ImportDeclaration> importDeclarations2; @ParentAccessor("TopLevel") List<TypeDeclaration> typeDeclarations3; }
@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=Expression.class, mixin=ExpressionMixin.class) class ArrayCreationTemplate { @Mandatory TypeReference componentTypeReference1; @ParentAccessor List<ArrayDimension> dimensions2; @ParentAccessor ArrayInitializer initializer3; }
@GenerateAstNode(implementing=Expression.class, mixin=ExpressionMixin.class) class ArrayCreationTemplate { @Mandatory TypeReference componentTypeReference1; @ParentAccessor List<ArrayDimension> dimensions2; @ParentAccessor ArrayInitializer initializer3; }
@GenerateAstNode(implementing=Expression.class, mixin=ExpressionMixin.class) class ArrayCreationTemplate { @Mandatory TypeReference componentTypeReference1; @ParentAccessor List<ArrayDimension> dimensions2; @ParentAccessor ArrayInitializer initializer3; }
@GenerateAstNode(implementing=TypeBody.class) class EnumTypeBodyTemplate { @ParentAccessor List<EnumConstant> constants1; List<TypeMember> members2; @CopyMethod static ConstructorInvocation upIfAnonymousClassToConstructorInvocation(EnumTypeBody self) { return null; } @CopyMethod static EnumConstant upToEnumConstant(EnumTypeBody self) { return null; } }
@GenerateAstNode(implementing=TypeBody.class) class EnumTypeBodyTemplate { @ParentAccessor List<EnumConstant> constants1; List<TypeMember> members2; @CopyMethod static ConstructorInvocation upIfAnonymousClassToConstructorInvocation(EnumTypeBody self) { return null; } @CopyMethod static EnumConstant upToEnumConstant(EnumTypeBody self) { return null; } }
@GenerateAstNode(implementing=DescribedNode.class) class CatchTemplate { @ParentAccessor @Mandatory VariableDefinition exceptionDeclaration1; @ParentAccessor @Mandatory Block body2; @CopyMethod static String getDescription(Catch self) { try { return self.astExceptionDeclaration().astTypeReference().getDescription(); } catch (NullPointerException e) { return null; } } }
@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={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. }
@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={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=TypeMember.class, mixin=TypeMemberMixin.class) class StaticInitializerTemplate { @ParentAccessor @Mandatory Block body1; }
@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, TypeMember.class, JavadocContainer.class}, mixin=TypeMemberMixin.class) class VariableDeclarationTemplate { Comment javadoc1; @ParentAccessor @Mandatory VariableDefinition definition2; @CopyMethod static StrictListAccessor<VariableDefinitionEntry,VariableDeclaration> getVariableDefinitionEntries(VariableDeclaration self) { VariableDefinition def = self.astDefinition(); if (def != null) { return def.variables.wrap(self).asStrict(); } return ListAccessor.emptyStrict("variableDefinitionEntries", self); } }