@Override public String getPackage() { return javaEnum.getPackage(); }
@Override public Import addImport(String className) { return javaEnum.addImport(className); }
@Override public Import getImport(String literalValue) { return javaEnum.getImport(literalValue); }
public JavaEnumSource create(ClassIndex index, EnumPlan plan) { final JavaEnumSource enumType = Roaster.create(JavaEnumSource.class) .setName(plan.getClassName()) .setPublic(); enumType.setPackage(plan.getPackageName()); enumType.addProperty(String.class, "allowedValue") .getAccessor() .getJavaDoc() .addTagValue("@return", "the allowed model value"); final MethodSource<JavaEnumSource> constructor = enumType.addMethod() .setConstructor(true); constructor.addParameter(String.class, "allowedValue"); enumType.addMethod() .setName("toString") .setReturnType(String.class) final EnumConstantSource constantSource = enumType.addEnumConstant(fixSingleDigitsInEnumName(sb.toString())); constantSource.setConstructorArguments("\"" + value.asString() + "\""); });
@Override public String generate(final org.jrebirth.af.tooling.codegen.bean.Enum beanDef, JavaEnumSource javaEnum) { javaEnum.setPackage(beanDef._package().qualifiedName()).setName(beanDef.name()); //if (beanDef.getSuperType() != null) { // javaInterface.setSuperType(beanDef.getSuperType().qualifiedName()); //} beanDef.values().stream().forEach(v -> javaEnum.addEnumConstant(v)); // return formatClass(javaInterface); return javaEnum.toString(); }
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; } }
private void loadFromJavaEnum(JavaEnumSource javaEnumSource, Path file, DataModel dataModel, ModelDriverResult result) { String className = javaEnumSource.getName(); String packageName = javaEnumSource.getPackage(); Visibility visibility = DriverUtils.buildVisibility(javaEnumSource.getVisibility()); JavaEnumImpl javaEnum = new JavaEnumImpl(packageName, className, visibility); dataModel.addJavaEnum(javaEnum); result.setClassPath(javaEnum.getClassName(), Paths.convert(file)); }
@Override public AnnotationSource<JavaEnumSource> addAnnotation(final Class<? extends java.lang.annotation.Annotation> clazz) { if (parent.requiresImport(clazz)) { parent.addImport(clazz); } return annotations.addAnnotation(this, enumConstant, clazz.getSimpleName()); }
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; }
@Override public String getCanonicalName() { return javaEnum.getCanonicalName() + "." + enumConstant.getName(); }
public JavaEnumSource create(ClassIndex index, EnumPlan plan) { final JavaEnumSource enumType = Roaster.create(JavaEnumSource.class) .setName(plan.getClassName()) .setPublic(); enumType.setPackage(plan.getPackageName()); enumType.addProperty(String.class, "allowedValue") .getAccessor() .getJavaDoc() .addTagValue("@return", "the allowed model value"); final MethodSource<JavaEnumSource> constructor = enumType.addMethod() .setConstructor(true); constructor.addParameter(String.class, "allowedValue"); enumType.addMethod() .setName("toString") .setReturnType(String.class) final EnumConstantSource constantSource = enumType.addEnumConstant(fixSingleDigitsInEnumName(sb.toString())); constantSource.setConstructorArguments("\"" + value.asString() + "\""); });
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; } }
@Override public AnnotationSource<JavaEnumSource> addAnnotation(final Class<? extends java.lang.annotation.Annotation> clazz) { if (parent.requiresImport(clazz)) { parent.addImport(clazz); } return annotations.addAnnotation(this, enumConstant, clazz.getSimpleName()); }
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; }
@Override public String getCanonicalName() { return javaEnum.getCanonicalName() + "." + enumConstant.getName(); }
@Override public Import getImport(Import imprt) { return javaEnum.getImport(imprt); }
@Override public Import addImport(Class<?> type) { return javaEnum.addImport(type); }
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; } }
@Override public String getPackage() { return javaEnum.getPackage(); }