Package org.apache.tapestry5.ioc.services

## Interface SymbolSource

- All Known Implementing Classes:
    `SymbolSourceImpl`

      @UsesOrderedConfiguration(SymbolProvider.class)
      public interface SymbolSource

  Used to manage symbols, configuration properties whose value is evaluated at runtime. Symbols use the Ant syntax: `${foo.bar.baz}` where `foo.bar.baz` is the name of the symbol. The symbol may appear inside some annotation, such as `Value`. The SymbolSource service configuration is an ordered list of `SymbolProvider`s. Two key SymbolProvider services are FactoryDefaults and ApplicationDefaults.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `expandSymbols​(String input)` | Given an input string that may contain symbols, returns the string with any and all symbols fully expanded.
    `String` | `valueForSymbol​(String symbolName)` | Expands the value for a particular symbol.

- - ### Method Detail

    - #### valueForSymbol

          String valueForSymbol​(String symbolName)

      Expands the value for a particular symbol. This may involve recursive expansion, if the immediate value for the symbol itself contains symbols.
      Parameters:
        `symbolName` -
      Returns:
        the expanded string
      Throws:
        `RuntimeException` - if the symbol name can not be expanded (no `SymbolProvider` can provide its value), or if an expansion is directly or indirectly recursive

    - #### expandSymbols

          String expandSymbols​(String input)

      Given an input string that may contain symbols, returns the string with any and all symbols fully expanded.
      Parameters:
        `input` -
      Returns:
        expanded input