JavaBeanPropertyDescriptor Class — spring-boot Architecture
Architecture documentation for the JavaBeanPropertyDescriptor class in JavaBeanPropertyDescriptor.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
configuration-metadata/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/JavaBeanPropertyDescriptor.java lines 32–81
class JavaBeanPropertyDescriptor extends PropertyDescriptor {
private final ExecutableElement setter;
private final VariableElement field;
private final ExecutableElement factoryMethod;
JavaBeanPropertyDescriptor(String name, TypeMirror type, TypeElement declaringElement, ExecutableElement getter,
ExecutableElement setter, VariableElement field, ExecutableElement factoryMethod) {
super(name, type, declaringElement, getter);
this.setter = setter;
this.field = field;
this.factoryMethod = factoryMethod;
}
ExecutableElement getSetter() {
return this.setter;
}
@Override
protected boolean isMarkedAsNested(MetadataGenerationEnvironment environment) {
return environment.getNestedConfigurationPropertyAnnotation(this.field) != null
|| environment.getNestedConfigurationPropertyAnnotation(getGetter()) != null;
}
@Override
protected String resolveDescription(MetadataGenerationEnvironment environment) {
return environment.getTypeUtils().getJavaDoc(this.field);
}
@Override
protected Object resolveDefaultValue(MetadataGenerationEnvironment environment) {
return environment.getFieldDefaultValue(getDeclaringElement(), this.field);
}
@Override
protected ItemDeprecation resolveItemDeprecation(MetadataGenerationEnvironment environment) {
return resolveItemDeprecation(environment, getGetter(), this.setter, this.field, this.factoryMethod);
}
@Override
public boolean isProperty(MetadataGenerationEnvironment env) {
boolean isCollection = env.getTypeUtils().isCollectionOrMap(getType());
boolean hasGetter = getGetter() != null;
boolean hasSetter = getSetter() != null;
return !env.isExcluded(getType()) && hasGetter && (hasSetter || isCollection);
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free