Package com.xebialabs.xlrelease.domain.variables

# Class Variable

java.lang.Object
com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
com.xebialabs.xlrelease.domain.BaseConfiguration
com.xebialabs.xlrelease.domain.variables.Variable

All Implemented Interfaces:
  `ConfigurationItem`, `VisitableItem`, `Serializable`, `Cloneable`, `Comparable<BaseConfigurationItem>`

Direct Known Subclasses:
  `Variable.VariableWithValue`

@Metadata(virtual=true, versioned=false) public abstract class Variable extends BaseConfiguration implements Cloneable, VisitableItem

See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Variable.VariableWithValue<V>`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  `protected boolean`
  `inherited`
  `protected String`
  `key`
  `protected String`
  `label`
  `protected boolean`
  `requiresValue`
  `protected boolean`
  `showOnReleaseStart`
  `protected ValueProviderConfiguration`
  `valueProvider`

  ### Fields inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem

  `id, syntheticProperties, type`

  ### Fields inherited from interface com.xebialabs.deployit.plugin.api.udm.ConfigurationItem

  `SYNTHETIC_PROPERTIES_FIELD, TYPE_FIELD`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Variable()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(ReleaseVisitor visitor)`
  `void`
  `checkFolderVariableValidity()`
  `void`
  `checkGlobalVariableValidity()`
  `void`
  `checkValidity()`
  `Variable`
  `clone()`
  `protected String`
  `escapeQuotes(String value)`
  `String`
  `getDescription()`
  `abstract Object`
  `getEmptyValue()`
  Returns empty value for the specific sub type.
  `abstract String`
  `getEmptyValueAsString()`
  `Object`
  `getInternalValue()`
  `String`
  `getKey()`
  `String`
  `getLabel()`
  `boolean`
  `getRequiresValue()`
  `boolean`
  `getShowOnReleaseStart()`
  `abstract Object`
  `getValue()`
  Gets underlying value of this variable, or default value for templates.
  `abstract String`
  `getValueAsString()`
  `ValueProviderConfiguration`
  `getValueProvider()`
  `boolean`
  `isInherited()`
  `abstract boolean`
  `isPassword()`
  `abstract boolean`
  `isValueAssignableFrom(Object value)`
  `boolean`
  `isValueEmpty()`
  Test if value is unset or empty.
  `void`
  `setDescription(String description)`
  `void`
  `setInherited(boolean inherited)`
  `void`
  `setKey(String key)`
  `void`
  `setLabel(String label)`
  `void`
  `setRequiresValue(boolean requiresValue)`
  `void`
  `setShowOnReleaseStart(boolean showOnReleaseStart)`
  `abstract void`
  `setUntypedValue(Object newValue)`
  Sets the underlying value of this variable from given object.
  `void`
  `setValueProvider(ValueProviderConfiguration valueProvider)`

  ### Methods inherited from class com.xebialabs.xlrelease.domain.BaseConfiguration

  `getFolderId, getTitle, hasId, isSupportedOn, setFolderId, setTitle`

  ### Methods inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem

  `compareTo, equals, get$ciAttributes, get$directoryReference, get$externalProperties, get$internalId, get$referenceId, get$securedCi, get$securedDirectoryReference, get$token, get$validationMessages, getId, getName, getProperty, getPropertyDescriptor, getType, hashCode, hasProperty, set$ciAttributes, set$directoryReference, set$externalProperties, set$internalId, set$referenceId, set$securedCi, set$securedDirectoryReference, set$token, set$validationMessages, setId, setProperty, setType, toString`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### key

    @Property(description="The unique name of the variable in the way it is used in template or release, without curly braces") protected String key

  - ### requiresValue

    @Property(required=false, defaultValue="true", description="Shows if an empty value is a valid value for this variable") protected boolean requiresValue

  - ### showOnReleaseStart

    @Property(required=false, defaultValue="true", description="Shows if this variable will be shown on create release page") protected boolean showOnReleaseStart

  - ### label

    @Property(required=false, description="Label of the variable") protected String label

  - ### description

    @Property(required=false, description="Description of the variable") protected String description

  - ### valueProvider

    @Property(required=false, description="Configuration of the variable values provider") protected ValueProviderConfiguration valueProvider

  - ### inherited

    @Property(required=false, description="Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only.") protected boolean inherited

- ## Constructor Details

  - ### Variable

    public Variable()

- ## Method Details

  - ### getValue

    public abstract Object getValue()
    Gets underlying value of this variable, or default value for templates. The specific type of value depends on the type of variable.
    Returns:
      the underlying value of this variable, or default value for templates.

  - ### getEmptyValue

    public abstract Object getEmptyValue()
    Returns empty value for the specific sub type. Empty value is used when replacing unset optional variables.
    Returns:
      empty value for the specific sub type.

  - ### isValueEmpty

    public boolean isValueEmpty()
    Test if value is unset or empty. Rely on the `getEmptyValue()` implementation.
    Returns:
      true if value is null or empty.

  - ### setUntypedValue

    public abstract void setUntypedValue(Object newValue) throws IllegalArgumentException
    Sets the underlying value of this variable from given object. If a conversion happens to be needed and fails, then an `IllegalArgumentException` will be thrown.
    Parameters:
      `newValue` - the value to set: either of the type needed by this variable type, or one of convertible types.
    Throws:
      `IllegalArgumentException` - if conversion of the value fails.

  - ### getKey

    public String getKey()

  - ### setKey

    public void setKey(String key)

  - ### getRequiresValue

    public boolean getRequiresValue()

  - ### setRequiresValue

    public void setRequiresValue(boolean requiresValue)

  - ### getShowOnReleaseStart

    public boolean getShowOnReleaseStart()

  - ### setShowOnReleaseStart

    public void setShowOnReleaseStart(boolean showOnReleaseStart)

  - ### getLabel

    public String getLabel()

  - ### setLabel

    public void setLabel(String label)

  - ### getDescription

    public String getDescription()

  - ### setDescription

    public void setDescription(String description)

  - ### checkValidity

    public void checkValidity()

  - ### checkGlobalVariableValidity

    public void checkGlobalVariableValidity()

  - ### checkFolderVariableValidity

    public void checkFolderVariableValidity()

  - ### getInternalValue

    public Object getInternalValue()

  - ### isPassword

    public abstract boolean isPassword()

  - ### getValueAsString

    public abstract String getValueAsString()

  - ### getEmptyValueAsString

    public abstract String getEmptyValueAsString()

  - ### isValueAssignableFrom

    public abstract boolean isValueAssignableFrom(Object value)

  - ### escapeQuotes

    protected String escapeQuotes(String value)

  - ### getValueProvider

    public ValueProviderConfiguration getValueProvider()

  - ### setValueProvider

    public void setValueProvider(ValueProviderConfiguration valueProvider)

  - ### accept

    public void accept(ReleaseVisitor visitor)
    Specified by:
      `accept` in interface `VisitableItem`

  - ### isInherited

    public boolean isInherited()

  - ### setInherited

    public void setInherited(boolean inherited)

  - ### clone

    public Variable clone() throws CloneNotSupportedException
    Overrides:
      `clone` in class `Object`
    Throws:
      `CloneNotSupportedException`