Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.tapestry5.services
Interface MetaDataLocator

All Known Implementing Classes:
  MetaDataLocatorImpl

    @UsesMappedConfiguration(value=java.lang.String.class)
    public interface MetaDataLocator

Used to lookup meta data concerning a particular component. The primary source of meta data is the meta data defined for the component, accessed via `ComponentModel.getMeta(String)`. This includes meta data defined by base classes. When meta-data for a particular component can not be found, a search works up the containment hierarchy (to the component's container, and the container's container, and so on). If that proves unfruitful, a system of defaults is provided by configuration and matched against the containing page's logical name.

Finally, if no metadata is available, then `SymbolSource.valueForSymbol(String)` is used to obtain a value. Generally speaking, if you are going to use this service to look up meta data, your should also make a contribution to the FactoryDefaults service; otherwise, you risk a runtime exception if a meta-data key can not be resolved.

Method Summary
`
`<T> T`
` | `findMeta(java.lang.String key, ComponentResources resources, java.lang.Class<T> expectedType)` Searches for the value for the corresponding key.
`
`<T> T`
` | `findMeta(java.lang.String key, java.lang.String pageName, java.lang.Class<T> expectedType)` Searches for the value for the corresponding key for a particular page name (the page will not be loaded).

Method Detail

### findMeta

    <T> T findMeta(java.lang.String key,
                   ComponentResources resources,
                   java.lang.Class<T> expectedType)

  Searches for the value for the corresponding key. The value, if located, will have symbols expanded, and will be type coerced to the desired type.

  Parameters:
    `key` - the key used to locate the meta data (case insensitive)
    `resources` - the resources of the initial component used in the search
  Returns:
    the value if found (in the component, the component's container, etc. or via a folder default)
  Throws:
    `java.lang.RuntimeException` - if the value for the key is not present as meta data of the component, as an override, or as a symbol

### findMeta

    <T> T findMeta(java.lang.String key,
                   java.lang.String pageName,
                   java.lang.Class<T> expectedType)

  Searches for the value for the corresponding key for a particular page name (the page will not be loaded). The value, if located, will have symbols expanded, and will be type coerced to the desired type.

  Parameters:
    `key` - the key used to locate the meta data (case insensitive)
    `pageName` - the name of the page to search
  Returns:
    the value if found
  Throws:
    `java.lang.RuntimeException` - if the value for the key is not present as meta data of the page, as an override, or as a symbol

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2012 The Apache Software Foundation.