com.google.gwt.core.ext.linker

## Interface SelectionProperty

-     public interface SelectionProperty

  Represents a deferred binding property. The deferred binding property may or may not have a single value applied across all permutations. SelectionProperty implementations must support object identity comparisons.
  See Also:
    `A similarly-named interface used in generators.`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getFallbackValue()` Returns the fallback value or an empty string if not defined.
    `java.lang.String` | `getName()` Returns the name of the deferred binding property.
    `java.util.SortedSet<java.lang.String>` | `getPossibleValues()` Returns all possible values for this deferred binding property.
    `java.lang.String` | `getPropertyProvider(TreeLogger logger, java.util.SortedSet<ConfigurationProperty> configProperties)` Returns a raw function body that provides the runtime value to be used for a deferred binding property.
    `boolean` | `isDerived()` Returns `true` if the value of the SelectionProperty is always derived from other SelectionProperties and, as a consequence, the property provider never needs to be evaluated.
    `java.lang.String` | `tryGetValue()` Returns the defined value for the deferred binding property or `null` if the value of the property is not constant.

- - ### Method Detail

    - #### getFallbackValue

          java.lang.String getFallbackValue()

      Returns the fallback value or an empty string if not defined.

    - #### getName

          java.lang.String getName()

      Returns the name of the deferred binding property.

    - #### getPossibleValues

          java.util.SortedSet<java.lang.String> getPossibleValues()

      Returns all possible values for this deferred binding property.

    - #### getPropertyProvider

          java.lang.String getPropertyProvider(TreeLogger logger,
                                             java.util.SortedSet<ConfigurationProperty> configProperties)
                                               throws UnableToCompleteException

      Returns a raw function body that provides the runtime value to be used for a deferred binding property.
      Parameters:
        `logger` - logger to use for any warnings/errors
        `configProperties` - set of configuration properties
      Throws:
        `UnableToCompleteException` - if execution cannot continue, after having logged a message

    - #### isDerived

          boolean isDerived()

      Returns `true` if the value of the SelectionProperty is always derived from other SelectionProperties and, as a consequence, the property provider never needs to be evaluated.

    - #### tryGetValue

          java.lang.String tryGetValue()

      Returns the defined value for the deferred binding property or `null` if the value of the property is not constant.
      See Also:
        `CompilationResult.getPropertyMap()`