Class PropertyCodeGenerator

    • Field Detail

      • datatype

        protected final Datatype datatype
      • property

        protected final Property property
    • Constructor Detail

      • PropertyCodeGenerator

        public PropertyCodeGenerator​(Datatype datatype,
                                     Property property)
    • Method Detail

      • addValueFieldDeclaration

        public abstract void addValueFieldDeclaration​(SourceBuilder code)
        Add the field declaration for the property to the value's source code.
      • addBuilderFieldDeclaration

        public abstract void addBuilderFieldDeclaration​(SourceBuilder code)
        Add the field declaration for the property to the builder's source code.
      • addBuilderFieldAccessors

        public abstract void addBuilderFieldAccessors​(SourceBuilder code)
        Add the accessor methods for the property to the builder's source code.
      • addFinalFieldAssignment

        public abstract void addFinalFieldAssignment​(SourceBuilder code,
                                                     Excerpt finalField,
                                                     java.lang.String builder)
        Add the final assignment of the property to the value object's source code.
      • addPartialFieldAssignment

        public void addPartialFieldAssignment​(SourceBuilder code,
                                              Excerpt finalField,
                                              java.lang.String builder)
        Add the final assignment of the property to the partial value object's source code.
      • addAssignToBuilder

        public abstract void addAssignToBuilder​(SourceBuilder code,
                                                Variable builder)
        Adds an assignment to the field on the builder from the Value/Partial implementation.
      • addMergeFromValue

        public abstract void addMergeFromValue​(SourceBuilder code,
                                               java.lang.String value)
        Add a merge from value for the property to the builder's source code.
      • addMergeFromBuilder

        public abstract void addMergeFromBuilder​(SourceBuilder code,
                                                 java.lang.String builder)
        Add a merge from builder for the property to the builder's source code.
      • getMergeActions

        public abstract java.util.Set<MergeAction> getMergeActions()
        Returns the actions taken in mergeFrom, for generating JavaDoc.
      • addGetterAnnotations

        public void addGetterAnnotations​(SourceBuilder code)
        Adds method annotations for the value type getter method.
      • addReadValueFragment

        public void addReadValueFragment​(SourceBuilder code,
                                         Excerpt finalField)
        Adds a fragment converting the value object's field to the property's type.
      • addSetFromResult

        public abstract void addSetFromResult​(SourceBuilder code,
                                              Excerpt builder,
                                              Excerpt variable)
        Adds a set call for the property from a function result to the builder's source code.
      • addClearField

        public abstract void addClearField​(SourceBuilder code)
        Adds a clear call for the property given a template builder to the builder's source code.
      • addToStringValue

        public void addToStringValue​(SourceBuilder code)
        Adds value to an ongoing toString concatenation or append sequence.
      • addAccessorAnnotations

        public void addAccessorAnnotations​(SourceBuilder code)
      • addPutAnnotations

        public void addPutAnnotations​(SourceBuilder code)
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • fieldValues

        private java.util.Map<java.lang.String,​java.lang.Object> fieldValues()
      • addFieldValues

        private void addFieldValues​(java.lang.Class<?> cls,
                                    com.google.common.collect.ImmutableMap.Builder<java.lang.String,​java.lang.Object> valuesBuilder)