org.apache.sis.feature.builder

## Class PropertyTypeBuilder

- Object
- - TypeBuilder
  - - PropertyTypeBuilder

- All Implemented Interfaces:
    Localized
  Direct Known Subclasses:
    AssociationRoleBuilder, AttributeTypeBuilder

      public abstract class PropertyTypeBuilder
      extends TypeBuilder

  Describes one property of the `FeatureType` to be built by an `FeatureTypeBuilder`. A different instance of `PropertyTypeBuilder` exists for each property to describe. Those instances can be created by:
  - `FeatureTypeBuilder​.addAttribute(Class)`
  - `FeatureTypeBuilder​.addAttribute(DefaultAttributeType)` for using an existing attribute as a template
  - `FeatureTypeBuilder​.addAssociation(DefaultFeatureType)`
  - `FeatureTypeBuilder​.addAssociation(GenericName)`
  - `FeatureTypeBuilder​.addAssociation(DefaultAssociationRole)` for using an existing association as a template
  Since:
    0.8

  Defined in the `sis-feature` module

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract AbstractIdentifiedType` | `build()` Builds the property type from the information specified to this builder.
    `int` | `getMaximumOccurs()` Returns the maximum number of property values.
    `int` | `getMinimumOccurs()` Returns the minimum number of property values.
    `void` | `remove()` Removes this property from the `FeatureTypeBuilder`.
    `PropertyTypeBuilder` | `setMaximumOccurs(int occurs)` Sets the maximum number of property values.
    `PropertyTypeBuilder` | `setMinimumOccurs(int occurs)` Sets the minimum number of property values.

    - ### Methods inherited from class TypeBuilder

      `getDefinition, getDescription, getDesignation, getLocale, getName, isDeprecated, setDefinition, setDeprecated, setDescription, setDesignation, setName, setName, setName, toString`

    - ### Methods inherited from class Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getMinimumOccurs

          public int getMinimumOccurs()

      Returns the minimum number of property values. The returned value is greater than or equal to zero.
      Returns:
        the minimum number of property values.
      See Also:
        `DefaultAttributeType​.getMinimumOccurs()`

    - #### setMinimumOccurs

          public PropertyTypeBuilder setMinimumOccurs(int occurs)

      Sets the minimum number of property values. If the given number is greater than the maximal number of property values, than the maximum is also set to that value.
      Parameters:
        `occurs` - the new minimum number of property values.
      Returns:
        `this` for allowing method calls chaining.
      See Also:
        `getMinimumOccurs()`

    - #### getMaximumOccurs

          public final int getMaximumOccurs()

      Returns the maximum number of property values. The returned value is greater than or equal to the `getMinimumOccurs()` value. If there is no maximum, then this method returns `Integer​.MAX_VALUE`.
      Returns:
        the maximum number of property values, or `Integer​.MAX_VALUE` if none.
      See Also:
        `DefaultAttributeType​.getMaximumOccurs()`

    - #### setMaximumOccurs

          public PropertyTypeBuilder setMaximumOccurs(int occurs)

      Sets the maximum number of property values. If the given number is less than the minimal number of property values, than the minimum is also set to that value.
      Parameters:
        `occurs` - the new maximum number of property values.
      Returns:
        `this` for allowing method calls chaining.
      See Also:
        `getMaximumOccurs()`

    - #### build

          public abstract AbstractIdentifiedType build()
                                                throws IllegalStateException

      Builds the property type from the information specified to this builder. If a type has already been built and this builder state has not changed since the type creation, then the previously created `PropertyType` instance is returned (see `AttributeTypeBuilder​.build()` for more information).
      Warning: In a future SIS version, the return type may be changed to `org​.opengis​.feature​.PropertyType`. This change is pending GeoAPI revision.
      Specified by:
        `build` in class `TypeBuilder`
      Returns:
        the property type.
      Throws:
        `IllegalStateException` - if the builder contains inconsistent information.

    - #### remove

          public void remove()

      Removes this property from the `FeatureTypeBuilder`. After this method has been invoked, this `PropertyTypeBuilder` instance is no longer in the list returned by `FeatureTypeBuilder​.properties()` and attempts to invoke any setter method on `this` will cause an `IllegalStateException` to be thrown.

Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.