Package com.xebialabs.deployit.plugin.api.reflect

## Interface PropertyDescriptor

-     public interface PropertyDescriptor

  Encapsulates the metadata about a property of a type in the XL Deploy type system. Example of such metadata: the name and type of the property, information related to UI-rendering etc.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `areEqual​(ConfigurationItem item, ConfigurationItem other)` |
    `boolean` | `areEqual​(ConfigurationItem item, ConfigurationItem other, java.util.function.Function<ConfigurationItem,​java.lang.Object> identifierExtractor)` |
    `java.lang.Object` | `get​(ConfigurationItem item)` |
    `java.util.Set<java.lang.String>` | `getAliases()` |
    `java.util.List<java.lang.annotation.Annotation>` | `getAnnotations()` |
    `java.lang.String` | `getCandidateValuesFilter()` | The `CandidateValuesFilter` to apply when selecting values for this CI, SET_OF_CI, LIST_OF_CI property
    `java.lang.String` | `getCategory()` | The UI groups all properties in the same category into a tab of their own.
    `java.lang.Object` | `getDefaultValue()` |
    `java.lang.String` | `getDescription()` |
    `java.util.List<java.lang.String>` | `getEnumValues()` |
    `java.lang.String` | `getFqn()` |
    `InputHint` | `getInputHint()` |
    `PropertyKind` | `getKind()` |
    `java.lang.String` | `getLabel()` |
    `java.lang.String` | `getName()` |
    `Type` | `getReferencedType()` | Only relevant for properties of kind CI, SET_OF_CI or LIST_OF_CI.
    `Property.Size` | `getSize()` |
    `DescriptorRegistryId` | `getTypeSource()` |
    `boolean` | `isAsContainment()` | Indicates a parent / child relationship (Boolean).
    `boolean` | `isDeployedSpecific()` |
    `boolean` | `isHidden()` | Hidden properties don't show up in the UI.
    `boolean` | `isInspectionProperty()` |
    `boolean` | `isNested()` | Indicates a child relationship (Boolean).
    `boolean` | `isPassword()` | Only applicable for String property types.
    `boolean` | `isReadonly()` |
    `boolean` | `isRequired()` |
    `boolean` | `isRequiredForInspection()` |
    `boolean` | `isTransient()` |
    `void` | `set​(ConfigurationItem item, java.lang.Object value)` | Set the given value for this property of the given `ConfigurationItem`.
    `java.lang.String` | `toString()` |

- - ### Method Detail

    - #### getName

          java.lang.String getName()

      Returns:
        The name of the property.

    - #### getDescription

          java.lang.String getDescription()

      Returns:
        Textual description of the property.

    - #### isAsContainment

          boolean isAsContainment()

      Indicates a parent / child relationship (Boolean). Only applicable for properties that refer to other CIs.
      Returns:
        If asContainment is set to true and the property is of kind CI then we are referring to the parent of this CI. If the kind is LIST_OF_CI or SET_OF_CI, then this CI is the parent and this property refers to its children.

    - #### isNested

          boolean isNested()

      Indicates a child relationship (Boolean). Only applicable to properties of kind CI.
      Returns:
        If child is set to true and the property is of kind CI then we are referring to the child of this CI.

    - #### getCategory

          java.lang.String getCategory()

      The UI groups all properties in the same category into a tab of their own.
      Returns:
        The category of this property.

    - #### getLabel

          java.lang.String getLabel()

      Returns:
        Label text for use in the UI.

    - #### isPassword

          boolean isPassword()

      Only applicable for String property types. Contents maybe masked with '*' character.
      Returns:
        Whether this property is a password.

    - #### isRequired

          boolean isRequired()

      Returns:
        Whether this property is required.

    - #### getSize

          Property.Size getSize()

      Returns:
        The size of the input field in the UI. Possible values: DEFAULT, SMALL, MEDIUM or LARGE.

    - #### getKind

          PropertyKind getKind()

      Returns:
        The `PropertyKind`. Possible values: BOOLEAN, INTEGER, STRING, ENUM, CI, SET_OF_STRING, SET_OF_CI, LIST_OF_STRING, LIST_OF_CI or MAP_STRING_STRING.

    - #### getEnumValues

          java.util.List<java.lang.String> getEnumValues()

      Returns:
        All the available values if this property is of kind ENUM. Otherwise, an empty list.

    - #### getReferencedType

          Type getReferencedType()

      Only relevant for properties of kind CI, SET_OF_CI or LIST_OF_CI.
      Returns:
        The type of the referenced configuration item.

    - #### getDefaultValue

          java.lang.Object getDefaultValue()

      Returns:
        The default value of the property.

    - #### getTypeSource

          DescriptorRegistryId getTypeSource()

    - #### isHidden

          boolean isHidden()

      Hidden properties don't show up in the UI. Note that a hidden property must have a default value.
      Returns:
        Whether the property is hidden.

    - #### get

          java.lang.Object get​(ConfigurationItem item)

      Parameters:
        `item` - A `ConfigurationItem`.
      Returns:
        The value for this property of the given CI.

    - #### set

          void set​(ConfigurationItem item,
                   java.lang.Object value)

      Set the given value for this property of the given `ConfigurationItem`.

    - #### areEqual

          boolean areEqual​(ConfigurationItem item,
                           ConfigurationItem other)

    - #### areEqual

          boolean areEqual​(ConfigurationItem item,
                           ConfigurationItem other,
                           java.util.function.Function<ConfigurationItem,​java.lang.Object> identifierExtractor)

    - #### isInspectionProperty

          boolean isInspectionProperty()

      Returns:
        Whether this property is used for inspection (discovery).

    - #### isRequiredForInspection

          boolean isRequiredForInspection()

      Returns:
        Whether this property is required in order to start the discovery process.

    - #### isTransient

          boolean isTransient()

      Returns:
        Whether the property is persisted in the repository or not.

    - #### isReadonly

          boolean isReadonly()

      Returns:
        Whether the property is readonly or not.

    - #### getAliases

          java.util.Set<java.lang.String> getAliases()

      Returns:
        The aliases with which this property can be referred.

    - #### getCandidateValuesFilter

          java.lang.String getCandidateValuesFilter()

      The `CandidateValuesFilter` to apply when selecting values for this CI, SET_OF_CI, LIST_OF_CI property
      Returns:
        The name of the `CandidateValuesFilter`

    - #### getFqn

          java.lang.String getFqn()

      Returns:
        The fully qualified name of the property. This is the type name followed by a dot and then the property name. For example: `overthere.SshJumpstation.port`.

    - #### isDeployedSpecific

          boolean isDeployedSpecific()

    - #### getInputHint

          InputHint getInputHint()

      Returns:
        The `InputHint` configured for this property

    - #### getAnnotations

          java.util.List<java.lang.annotation.Annotation> getAnnotations()

    - #### toString

          java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`