Package org.apache.tapestry5.beanmodel.services

# Interface PropertyConduitSource

All Known Implementing Classes:
  `PropertyConduitSourceImpl`

public interface PropertyConduitSource
A source for `PropertyConduit`s, which can be thought of as a compiled property path expression. PropertyConduits are the basis of the "prop:" binding factory, thus this service defines the expression format used by the `PropBindingFactory`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PropertyConduit`
  `create(Class rootType, String expression)`
  Returns a property conduit instance for the given expression.

- ## Method Details

  - ### create

    PropertyConduit create(Class rootType, String expression)
    Returns a property conduit instance for the given expression. PropertyConduitSource caches the conduits it returns, so despite the name, this method does not always create a new conduit. The cache is cleared if a change to component classes is observed. Callers of this method should observe notifications from the `InvalidationEventHub` for `ComponentClasses` and discard any aquired conduits; failure to do so will create memory leaks whenever component classes change (the conduits will keep references to the old classes and classloaders).
    Parameters:
      `rootType` - the type of the root object to which the expression is applied
      `expression` - expression to be evaluated on instances of the root class
    Returns:
      RuntimeException if the expression is invalid (poorly formed, references non-existent properties, etc.)