@Override public final AbstractJavaSourceMemberHolder<O> removeProperty(Property<O> property) { if (hasProperty(property)) { getProperty(property.getName()).setMutable(false).setAccessible(false).removeField(); } return this; }
@Override public final PropertySource<O> addProperty(String type, String name) { Assert.isFalse(hasProperty(name), "Cannot create existing property " + name); final org.jboss.forge.roaster.model.Type<O> typeObject = new TypeImpl<O>(getOrigin(), null, type); final PropertySource<O> result = new PropertyImpl<O>(name, getOrigin()) { @Override public org.jboss.forge.roaster.model.Type<O> getType() { final org.jboss.forge.roaster.model.Type<O> result = super.getType(); return result == null ? typeObject : result; } }; if (!isInterface()) { result.createField(); } result.setAccessible(true); result.setMutable(!isEnum()); return getProperty(name); }
private List<ResolvedProperty> getProperties(JavaClassSource nestedType) { final List<ResolvedProperty> properties = new ArrayList<>(); final Set<String> names = new HashSet<>(); do { for (PropertySource<JavaClassSource> propertySource : nestedType.getProperties()) { // NOTE: fields with no setters are skipped if (propertySource.isMutable() && !names.contains(propertySource.getName())) { properties.add(new ResolvedProperty(getSimpleJavaType(resolveParamType(nestedType, propertySource.getType().getName())), propertySource)); names.add(propertySource.getName()); } } nestedType = readJavaType(nestedType.getSuperType()); } while (nestedType != null); return properties; }
/** * Removes the field, including its getters and setters and updating toString() * * @param targetClass The class, which field will be removed * @param field The field to be removed */ public void removeField(final JavaClassSource targetClass, final Field<JavaClassSource> field) { PropertySource<JavaClassSource> property = targetClass.getProperty(field.getName()); property.setMutable(false).setAccessible(false); targetClass.removeProperty(property); updateToString(targetClass); }
Type<JavaClassSource> propType = sourceProp.getType(); boolean ignore = sourceProp.getAnnotation(XmlTransient.class) != null; if (ignore || propType.isType("CamelContext")) { continue; final PropertySource<JavaClassSource> prop = innerClass.addProperty(optionType, sourceProp.getName()); && !optionClass.isAnnotation() && !Modifier.isAbstract(optionClass.getModifiers())) { prop.getField().addAnnotation(NestedConfigurationProperty.class); if (sourceProp.hasAnnotation(Deprecated.class)) { prop.getField().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(Deprecated.class); prop.getMutator().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(DeprecatedConfigurationProperty.class); final MethodSource<JavaClassSource> mutator = sourceProp.getMutator(); if (mutator.hasJavaDoc()) { description = mutator.getJavaDoc().getFullText(); } else if (sourceProp.hasField()) { description = sourceProp.getField().getJavaDoc().getFullText(); if (Strings.isBlank(description) && sourceProp.hasAnnotation(UriPath.class)) { description = sourceProp.getAnnotation(UriPath.class).getStringValue("description"); if (Strings.isBlank(description) && sourceProp.hasAnnotation(UriParam.class)) {
bogus.getField().getJavaDoc().setText("Whether to enable auto configuration of the " + model.getName() + " data format. This is enabled by default."); bogus.removeAccessor(); bogus.removeMutator(); prop.getField().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(Deprecated.class); prop.getMutator().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(DeprecatedConfigurationProperty.class); prop.getField().getJavaDoc().setFullText(desc); prop.getField().setStringInitializer(option.getDefaultValue()); } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) { prop.getField().setLiteralInitializer(value); } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) { prop.getField().setLiteralInitializer(option.getDefaultValue()); } else if (!Strings.isBlank(option.getEnumValues())) { String enumShortName = type.substring(type.lastIndexOf(".") + 1); prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue()); javaClass.addImport(model.getJavaType());
FieldSource<JavaClassSource> field = property.getField(); field.setVisibility(visibility); for (String annotation : annotations) targetClass.removeMethod(property.getAccessor()); targetClass.removeMethod(property.getMutator());
for (PropertySource<JavaClassSource> property : javaClass.getProperties()) String propertyName = property.getName(); String upperCasedName = Character.toUpperCase(propertyName.charAt(0)) + propertyName.substring(1); MethodSource<JavaClassSource> method = builderClass.addMethod().setPublic().setReturnType(builderClass) .setName("with" + upperCasedName); method.addParameter(property.getType().getQualifiedName(), "param"); method.setBody("obj.set" + upperCasedName + "(param);return this;");
.getAccessor() .getJavaDoc() .setText("Returns the allowed value for the management model.")
prop.getField().getJavaDoc().setFullText(option.getDescription()); prop.getField().setStringInitializer(option.getDefaultValue()); } else if ("long".equals(type) || "java.lang.Long".equals(type)) { prop.getField().setLiteralInitializer(value); } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) { prop.getField().setLiteralInitializer(option.getDefaultValue()); } else if (!Strings.isBlank(option.getEnums())) { String enumShortName = type.substring(type.lastIndexOf(".") + 1); prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue()); javaClass.addImport(model.getJavaType());
bogus.getField().getJavaDoc().setText("Whether to enable auto configuration of the " + model.getName() + " language. This is enabled by default."); bogus.removeAccessor(); bogus.removeMutator(); prop.getField().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(Deprecated.class); prop.getMutator().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(DeprecatedConfigurationProperty.class); prop.getField().getJavaDoc().setFullText(desc); prop.getField().setStringInitializer(option.getDefaultValue()); } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) { prop.getField().setLiteralInitializer(value); } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) { prop.getField().setLiteralInitializer(option.getDefaultValue()); } else if (!Strings.isBlank(option.getEnumValues())) { String enumShortName = type.substring(type.lastIndexOf(".") + 1); prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue()); javaClass.addImport(model.getJavaType());
for (PropertySource<JavaClassSource> property : javaClass.getProperties()) String propertyName = property.getName(); String upperCasedName = Character.toUpperCase(propertyName.charAt(0)) + propertyName.substring(1); MethodSource<JavaClassSource> method = builderClass.addMethod().setPublic().setReturnType(builderClass) .setName("with" + upperCasedName); method.addParameter(property.getType().getQualifiedName(), "param"); method.setBody("obj.set" + upperCasedName + "(param);return this;");
.getAccessor() .getJavaDoc() .setText("Returns the allowed value for the management model.")
public static JavaClassSource createGreetingPropertiesClass(JavaClassSource current) { JavaClassSource source = Roaster.create(JavaClassSource.class).setName("GreetingProperties").setPackage(current.getPackage()); source.addAnnotation(Component.class); source.addAnnotation(ConfigurationProperties.class).setStringValue("greeting"); source.addProperty(String.class, "message").getField().setStringInitializer("Hello, %s!"); return source; }
bogus.getField().getJavaDoc().setText("Whether to enable auto configuration of the " + scheme + " component. This is enabled by default."); bogus.removeAccessor(); bogus.removeMutator(); && (javaClassSource == null || (javaClassSource.isClass() && !javaClassSource.isAbstract()))) { prop.getField().addAnnotation(NestedConfigurationProperty.class); prop.getField().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(Deprecated.class); prop.getMutator().addAnnotation(Deprecated.class); prop.getAccessor().addAnnotation(DeprecatedConfigurationProperty.class); prop.getField().getJavaDoc().setFullText(desc); prop.getField().setStringInitializer(option.getDefaultValue()); } else if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) { prop.getField().setLiteralInitializer(value); } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) { prop.getField().setLiteralInitializer(option.getDefaultValue()); } else if (!Strings.isBlank(option.getEnums())) { String enumShortName = type.substring(type.lastIndexOf(".") + 1); prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue()); javaClass.addImport(model.getJavaType());
@Override public final AbstractJavaSourceMemberHolder<O> removeProperty(Property<O> property) { if (hasProperty(property)) { getProperty(property.getName()).setMutable(false).setAccessible(false).removeField(); } return this; }
result.createField(); result.setAccessible(true); result.setMutable(!isEnum());
prop.getField().getJavaDoc().setFullText(option.getDescription()); prop.getField().setStringInitializer(option.getDefaultValue()); } else if ("long".equals(type) || "java.lang.Long".equals(type)) { prop.getField().setLiteralInitializer(value); } else if ("integer".equals(option.getType()) || "boolean".equals(option.getType())) { prop.getField().setLiteralInitializer(option.getDefaultValue()); } else if (!Strings.isBlank(option.getEnums())) { String enumShortName = type.substring(type.lastIndexOf(".") + 1); prop.getField().setLiteralInitializer(enumShortName + "." + option.getDefaultValue()); commonClass.addImport(model.getJavaType());
@Override public final AbstractJavaSourceMemberHolder<O> removeProperty(Property<O> property) { if (hasProperty(property)) { getProperty(property.getName()).setMutable(false).setAccessible(false).removeField(); } return this; }
result.createField(); result.setAccessible(true); result.setMutable(!isEnum());