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

  Modifier and Type
  Method
  Description
  `boolean`
  `areEqual(ConfigurationItem item, ConfigurationItem other)`
  `boolean`
  `areEqual(ConfigurationItem item, ConfigurationItem other, Function<ConfigurationItem,Object> identifierExtractor)`
  `Object`
  `get(ConfigurationItem item)`
  `Set<String>`
  `getAliases()`
  `List<Annotation>`
  `getAnnotations()`
  `String`
  `getCandidateValuesFilter()`
  The `CandidateValuesFilter` to apply when selecting values for this CI, SET_OF_CI, LIST_OF_CI property
  `String`
  `getCategory()`
  The UI groups all properties in the same category into a tab of their own.
  `Object`
  `getDefaultValue()`
  `String`
  `getDescription()`
  `List<String>`
  `getEnumValues()`
  `String`
  `getFqn()`
  `InputHint`
  `getInputHint()`
  `PropertyKind`
  `getKind()`
  `String`
  `getLabel()`
  `String`
  `getName()`
  `int`
  `getOrder()`
  `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`
  `isSecret()`
  Indicates whether this property contains sensitive data (e.g., certificates, private keys, API keys).
  `boolean`
  `isTransient()`
  `void`
  `set(ConfigurationItem item, Object value)`
  Set the given value for this property of the given `ConfigurationItem`.
  `String`
  `toString()`

- ## Method Details

  - ### getName

    String getName()
    Returns:
      The name of the property.

  - ### getDescription

    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.

  - ### getOrder

    int getOrder()

  - ### getCategory

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

  - ### getLabel

    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.

  - ### isSecret

    boolean isSecret()
    Indicates whether this property contains sensitive data (e.g., certificates, private keys, API keys). Properties marked as secret will be written to secrets.xlvals during export.
    Returns:
      Whether this property is a secret.

  - ### 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

    List<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

    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

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

  - ### set

    void set(ConfigurationItem item, 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, Function<ConfigurationItem,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

    Set<String> getAliases()
    Returns:
      The aliases with which this property can be referred.

  - ### getCandidateValuesFilter

    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

    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

    List<Annotation> getAnnotations()

  - ### toString

    String toString()
    Overrides:
      `toString` in class `Object`