public EnumConstantImpl(final JavaEnumSource parent, final String declaration) { init(parent); String stub = "public enum Stub { " + declaration + " }"; JavaEnumSource temp = (JavaEnumSource) Roaster.parse(stub); List<EnumConstantSource> constants = temp.getEnumConstants(); EnumConstantDeclaration newField = (EnumConstantDeclaration) constants.get(0).getInternal(); EnumConstantDeclaration subtree = (EnumConstantDeclaration) ASTNode.copySubtree(ast, newField); this.enumConstant = subtree; }
public EnumConstantImpl(final JavaEnumSource parent, final String declaration) { init(parent); String stub = "public enum Stub { " + declaration + " }"; JavaEnumSource temp = (JavaEnumSource) Roaster.parse(stub); List<EnumConstantSource> constants = temp.getEnumConstants(); EnumConstantDeclaration newField = (EnumConstantDeclaration) constants.get(0).getInternal(); EnumConstantDeclaration subtree = (EnumConstantDeclaration) ASTNode.copySubtree(ast, newField); this.enumConstant = subtree; }
public EnumConstantImpl(final JavaEnumSource parent, final String declaration) { init(parent); String stub = "public enum Stub { " + declaration + " }"; JavaEnumSource temp = (JavaEnumSource) Roaster.parse(stub); List<EnumConstantSource> constants = temp.getEnumConstants(); EnumConstantDeclaration newField = (EnumConstantDeclaration) constants.get(0).getInternal(); EnumConstantDeclaration subtree = (EnumConstantDeclaration) ASTNode.copySubtree(ast, newField); this.enumConstant = subtree; }
@SuppressWarnings("unchecked") @Override public EnumConstantSource setConstructorArguments(String... literalArguments) { enumConstant.arguments().clear(); if (literalArguments != null && literalArguments.length > 0) { final String stub = "public enum Stub { FOO(" + Strings.join(Arrays.asList(literalArguments), ", ") + "); }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final List<EnumConstantSource> constants = temp.getEnumConstants(); final EnumConstantDeclaration newConstant = (EnumConstantDeclaration) constants.get(0).getInternal(); final List<Expression> arguments = newConstant.arguments(); for (Expression argument : arguments) { final Expression subtree = (Expression) ASTNode.copySubtree(ast, argument); enumConstant.arguments().add(subtree); } } return this; }
@SuppressWarnings("unchecked") @Override public EnumConstantSource setConstructorArguments(String... literalArguments) { enumConstant.arguments().clear(); if (literalArguments != null && literalArguments.length > 0) { final String stub = "public enum Stub { FOO(" + Strings.join(Arrays.asList(literalArguments), ", ") + "); }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final List<EnumConstantSource> constants = temp.getEnumConstants(); final EnumConstantDeclaration newConstant = (EnumConstantDeclaration) constants.get(0).getInternal(); final List<Expression> arguments = newConstant.arguments(); for (Expression argument : arguments) { final Expression subtree = (Expression) ASTNode.copySubtree(ast, argument); enumConstant.arguments().add(subtree); } } return this; }
@SuppressWarnings("unchecked") @Override public EnumConstantSource setConstructorArguments(String... literalArguments) { enumConstant.arguments().clear(); if (literalArguments != null && literalArguments.length > 0) { final String stub = "public enum Stub { FOO(" + Strings.join(Arrays.asList(literalArguments), ", ") + "); }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final List<EnumConstantSource> constants = temp.getEnumConstants(); final EnumConstantDeclaration newConstant = (EnumConstantDeclaration) constants.get(0).getInternal(); final List<Expression> arguments = newConstant.arguments(); for (Expression argument : arguments) { final Expression subtree = (Expression) ASTNode.copySubtree(ast, argument); enumConstant.arguments().add(subtree); } } return this; }
AnonymousClassDeclaration getBody() { final EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstant.getInternal(); synchronized (enumConstantDeclaration) { AnonymousClassDeclaration result = enumConstantDeclaration.getAnonymousClassDeclaration(); if (result == null) { final String stub = "enum StubEnum { FOO() {}; }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final AnonymousClassDeclaration body = ((EnumConstantBodyImpl) temp.getEnumConstants().get(0).getBody()) .getBody(); final AST ast = ((ASTNode) javaEnum.getInternal()).getAST(); result = (AnonymousClassDeclaration) ASTNode.copySubtree(ast, body); enumConstantDeclaration.setAnonymousClassDeclaration(result); } return result; } }
AnonymousClassDeclaration getBody() { final EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstant.getInternal(); synchronized (enumConstantDeclaration) { AnonymousClassDeclaration result = enumConstantDeclaration.getAnonymousClassDeclaration(); if (result == null) { final String stub = "enum StubEnum { FOO() {}; }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final AnonymousClassDeclaration body = ((EnumConstantBodyImpl) temp.getEnumConstants().get(0).getBody()) .getBody(); final AST ast = ((ASTNode) javaEnum.getInternal()).getAST(); result = (AnonymousClassDeclaration) ASTNode.copySubtree(ast, body); enumConstantDeclaration.setAnonymousClassDeclaration(result); } return result; } }
AnonymousClassDeclaration getBody() { final EnumConstantDeclaration enumConstantDeclaration = (EnumConstantDeclaration) enumConstant.getInternal(); synchronized (enumConstantDeclaration) { AnonymousClassDeclaration result = enumConstantDeclaration.getAnonymousClassDeclaration(); if (result == null) { final String stub = "enum StubEnum { FOO() {}; }"; final JavaEnumSource temp = Roaster.parse(JavaEnumSource.class, stub); final AnonymousClassDeclaration body = ((EnumConstantBodyImpl) temp.getEnumConstants().get(0).getBody()) .getBody(); final AST ast = ((ASTNode) javaEnum.getInternal()).getAST(); result = (AnonymousClassDeclaration) ASTNode.copySubtree(ast, body); enumConstantDeclaration.setAnonymousClassDeclaration(result); } return result; } }