Package com.xebialabs.xlrelease.domain.facet

## Class Facet

- java.lang.Object
- - com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
  - - com.xebialabs.xlrelease.domain.facet.Facet

- All Implemented Interfaces:
    `ConfigurationItem`, `VisitableItem`, `java.io.Serializable`, `java.lang.Comparable<BaseConfigurationItem>`
  Direct Known Subclasses:
    `ConfigurationFacet`, `TaskReportingRecord`

      @Metadata(root=APPLICATIONS,
                versioned=false,
                virtual=true,
                description="Base facet class used to augment other CIs (tasks only currently)")
      public abstract class Facet
      extends BaseConfigurationItem
      implements VisitableItem

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CONFIGURATION_URI` |
    `protected FacetScope` | `scope` |

    - ### 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
    --- | ---
    `Facet()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `accept​(ReleaseVisitor visitor)` |
    `java.util.Set<java.lang.String>` | `freezeVariables​(java.util.Map<java.lang.String,​ValueWithInterpolation> variables, Changes changes, boolean freezeEvenIfUnresolved)` |
    `java.util.Collection<PropertyDescriptor>` | `getPropertiesWithVariables()` |
    `FacetScope` | `getScope()` |
    `java.lang.String` | `getTargetId()` |
    `java.util.Map<java.lang.String,​java.lang.String>` | `getVariableMapping()` |
    `java.util.List<UsagePoint>` | `getVariableUsages()` |
    `void` | `setScope​(FacetScope scope)` |
    `void` | `setTargetId​(java.lang.String targetId)` |
    `void` | `setVariableMapping​(java.util.Map<java.lang.String,​java.lang.String> variableMapping)` |

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

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

- - ### Field Detail

    - #### CONFIGURATION_URI

          public static final java.lang.String CONFIGURATION_URI

      See Also:
        Constant Field Values

    - #### scope

          @Property(hidden=true,
                    category="internal",
                    description="CI kind to which the facet can be applied.",
                    defaultValue="TASK")
          protected FacetScope scope

  - ### Constructor Detail

    - #### Facet

          public Facet()

  - ### Method Detail

    - #### getScope

          public FacetScope getScope()

    - #### setScope

          public void setScope​(FacetScope scope)

    - #### getTargetId

          public java.lang.String getTargetId()

    - #### setTargetId

          public void setTargetId​(java.lang.String targetId)

      Parameters:
        `targetId` - The ID of the CI that generated the record, e.g. the `task.id`

    - #### accept

          public void accept​(ReleaseVisitor visitor)

      Specified by:
        `accept` in interface `VisitableItem`

    - #### getVariableUsages

          public java.util.List<UsagePoint> getVariableUsages()

    - #### getVariableMapping

          public java.util.Map<java.lang.String,​java.lang.String> getVariableMapping()

    - #### setVariableMapping

          public void setVariableMapping​(java.util.Map<java.lang.String,​java.lang.String> variableMapping)

    - #### freezeVariables

          public java.util.Set<java.lang.String> freezeVariables​(java.util.Map<java.lang.String,​ValueWithInterpolation> variables,
                                                                 Changes changes,
                                                                 boolean freezeEvenIfUnresolved)

    - #### getPropertiesWithVariables

          public java.util.Collection<PropertyDescriptor> getPropertiesWithVariables()