Package org.apache.tapestry5.beanmodel.internal.services

## Class PropertyConduitSourceImpl

- java.lang.Object
- - org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl

- All Implemented Interfaces:
    `PropertyConduitSource`

      public class PropertyConduitSourceImpl
      extends Object
      implements PropertyConduitSource

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PropertyConduitSourceImpl​(PropertyAccess access, PlasticProxyFactory proxyFactory, TypeCoercer typeCoercer, StringInterner interner)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PropertyConduit` | `create​(Class rootClass, String expression)` | Returns a property conduit instance for the given expression.
    `void` | `listenForInvalidations​(InvalidationEventHub hub)` |
    `static NullPointerException` | `nullTerm​(String term, String expression, Object root)` | May be invoked from fabricated PropertyConduit instances.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PropertyConduitSourceImpl

          public PropertyConduitSourceImpl​(PropertyAccess access,
                                           @ComponentLayer
                                           PlasticProxyFactory proxyFactory,
                                           TypeCoercer typeCoercer,
                                           StringInterner interner)

  - ### Method Detail

    - #### listenForInvalidations

          @PostInjection
          public void listenForInvalidations​(@ComponentClasses
                                             InvalidationEventHub hub)

    - #### create

          public PropertyConduit create​(Class rootClass,
                                        String expression)

      Description copied from interface: `PropertyConduitSource`
      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).
      Specified by:
        `create` in interface `PropertyConduitSource`
      Parameters:
        `rootClass` - 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.)

    - #### nullTerm

          public static NullPointerException nullTerm​(String term,
                                                      String expression,
                                                      Object root)

      May be invoked from fabricated PropertyConduit instances.