Class OptionalProperty
- java.lang.Object
-
- org.inferred.freebuilder.processor.property.PropertyCodeGenerator
-
- org.inferred.freebuilder.processor.property.OptionalProperty
-
class OptionalProperty extends PropertyCodeGenerator
PropertyCodeGeneratorproviding a default value (absent/empty) and convenience setter methods for Guava and Java 8 Optional properties.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classOptionalProperty.Factory(package private) static classOptionalProperty.OptionalType-
Nested classes/interfaces inherited from class org.inferred.freebuilder.processor.property.PropertyCodeGenerator
PropertyCodeGenerator.Config, PropertyCodeGenerator.Initially
-
-
Field Summary
Fields Modifier and Type Field Description private javax.lang.model.type.TypeMirrorelementTypeprivate FunctionalTypemapperTypeprivate OptionalProperty.OptionalTypeoptionalprivate java.util.Optional<javax.lang.model.type.TypeMirror>unboxedType-
Fields inherited from class org.inferred.freebuilder.processor.property.PropertyCodeGenerator
datatype, property
-
-
Constructor Summary
Constructors Constructor Description OptionalProperty(Datatype datatype, Property property, OptionalProperty.OptionalType optional, javax.lang.model.type.TypeMirror elementType, java.util.Optional<javax.lang.model.type.TypeMirror> unboxedType, FunctionalType mapperType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAssignToBuilder(SourceBuilder code, Variable builder)Adds an assignment to the field on the builder from the Value/Partial implementation.voidaddBuilderFieldAccessors(SourceBuilder code)Add the accessor methods for the property to the builder's source code.voidaddBuilderFieldDeclaration(SourceBuilder code)Add the field declaration for the property to the builder's source code.private voidaddClear(SourceBuilder code)voidaddClearField(SourceBuilder code)Adds a clear call for the property given a template builder to the builder's source code.voidaddFinalFieldAssignment(SourceBuilder code, Excerpt finalField, java.lang.String builder)Add the final assignment of the property to the value object's source code.private voidaddGetter(SourceBuilder code)private voidaddMapper(SourceBuilder code)voidaddMergeFromBuilder(SourceBuilder code, java.lang.String builder)Add a merge from builder for the property to the builder's source code.voidaddMergeFromValue(SourceBuilder code, java.lang.String value)Add a merge from value for the property to the builder's source code.private voidaddNullableSetter(SourceBuilder code)private voidaddOptionalSetter(SourceBuilder code)voidaddReadValueFragment(SourceBuilder code, Excerpt finalField)Adds a fragment converting the value object's field to the property's type.voidaddSetFromResult(SourceBuilder code, Excerpt builder, Excerpt variable)Adds a set call for the property from a function result to the builder's source code.private voidaddSetter(SourceBuilder code)voidaddValueFieldDeclaration(SourceBuilder code)Add the field declaration for the property to the value's source code.java.util.Set<MergeAction>getMergeActions()Returns the actions taken in mergeFrom, for generating JavaDoc.PropertyCodeGenerator.InitiallyinitialState()Returns whether the property is required, optional, or has a default.-
Methods inherited from class org.inferred.freebuilder.processor.property.PropertyCodeGenerator
addAccessorAnnotations, addGetterAnnotations, addPartialFieldAssignment, addPutAnnotations, addToStringCondition, addToStringValue, equals, hashCode, toString
-
-
-
-
Field Detail
-
optional
private final OptionalProperty.OptionalType optional
-
elementType
private final javax.lang.model.type.TypeMirror elementType
-
unboxedType
private final java.util.Optional<javax.lang.model.type.TypeMirror> unboxedType
-
mapperType
private final FunctionalType mapperType
-
-
Constructor Detail
-
OptionalProperty
OptionalProperty(Datatype datatype, Property property, OptionalProperty.OptionalType optional, javax.lang.model.type.TypeMirror elementType, java.util.Optional<javax.lang.model.type.TypeMirror> unboxedType, FunctionalType mapperType)
-
-
Method Detail
-
initialState
public PropertyCodeGenerator.Initially initialState()
Description copied from class:PropertyCodeGeneratorReturns whether the property is required, optional, or has a default.- Overrides:
initialStatein classPropertyCodeGenerator
-
addValueFieldDeclaration
public void addValueFieldDeclaration(SourceBuilder code)
Description copied from class:PropertyCodeGeneratorAdd the field declaration for the property to the value's source code.- Specified by:
addValueFieldDeclarationin classPropertyCodeGenerator
-
addBuilderFieldDeclaration
public void addBuilderFieldDeclaration(SourceBuilder code)
Description copied from class:PropertyCodeGeneratorAdd the field declaration for the property to the builder's source code.- Specified by:
addBuilderFieldDeclarationin classPropertyCodeGenerator
-
addBuilderFieldAccessors
public void addBuilderFieldAccessors(SourceBuilder code)
Description copied from class:PropertyCodeGeneratorAdd the accessor methods for the property to the builder's source code.- Specified by:
addBuilderFieldAccessorsin classPropertyCodeGenerator
-
addSetter
private void addSetter(SourceBuilder code)
-
addOptionalSetter
private void addOptionalSetter(SourceBuilder code)
-
addNullableSetter
private void addNullableSetter(SourceBuilder code)
-
addMapper
private void addMapper(SourceBuilder code)
-
addClear
private void addClear(SourceBuilder code)
-
addGetter
private void addGetter(SourceBuilder code)
-
addFinalFieldAssignment
public void addFinalFieldAssignment(SourceBuilder code, Excerpt finalField, java.lang.String builder)
Description copied from class:PropertyCodeGeneratorAdd the final assignment of the property to the value object's source code.- Specified by:
addFinalFieldAssignmentin classPropertyCodeGenerator
-
addAssignToBuilder
public void addAssignToBuilder(SourceBuilder code, Variable builder)
Description copied from class:PropertyCodeGeneratorAdds an assignment to the field on the builder from the Value/Partial implementation.- Specified by:
addAssignToBuilderin classPropertyCodeGenerator
-
addMergeFromValue
public void addMergeFromValue(SourceBuilder code, java.lang.String value)
Description copied from class:PropertyCodeGeneratorAdd a merge from value for the property to the builder's source code.- Specified by:
addMergeFromValuein classPropertyCodeGenerator
-
addMergeFromBuilder
public void addMergeFromBuilder(SourceBuilder code, java.lang.String builder)
Description copied from class:PropertyCodeGeneratorAdd a merge from builder for the property to the builder's source code.- Specified by:
addMergeFromBuilderin classPropertyCodeGenerator
-
getMergeActions
public java.util.Set<MergeAction> getMergeActions()
Description copied from class:PropertyCodeGeneratorReturns the actions taken in mergeFrom, for generating JavaDoc.- Specified by:
getMergeActionsin classPropertyCodeGenerator
-
addReadValueFragment
public void addReadValueFragment(SourceBuilder code, Excerpt finalField)
Description copied from class:PropertyCodeGeneratorAdds a fragment converting the value object's field to the property's type.- Overrides:
addReadValueFragmentin classPropertyCodeGenerator
-
addSetFromResult
public void addSetFromResult(SourceBuilder code, Excerpt builder, Excerpt variable)
Description copied from class:PropertyCodeGeneratorAdds a set call for the property from a function result to the builder's source code.- Specified by:
addSetFromResultin classPropertyCodeGenerator
-
addClearField
public void addClearField(SourceBuilder code)
Description copied from class:PropertyCodeGeneratorAdds a clear call for the property given a template builder to the builder's source code.- Specified by:
addClearFieldin classPropertyCodeGenerator
-
-