org.springframework.scripting.support

## Class RefreshableScriptTargetSource

- java.lang.Object
- - org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
  - - org.springframework.aop.target.dynamic.BeanFactoryRefreshableTargetSource
    - - org.springframework.scripting.support.RefreshableScriptTargetSource

- All Implemented Interfaces:
    Refreshable, TargetClassAware, TargetSource

      public class RefreshableScriptTargetSource
      extends BeanFactoryRefreshableTargetSource

  Subclass of `BeanFactoryRefreshableTargetSource` that determines whether a refresh is required through the given `ScriptFactory`.
  Since:
    2.0
  Author:
    Rob Harrop, Juergen Hoeller, Mark Fisher

- - ### Field Summary

    - ### Fields inherited from class org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource

      `logger, targetObject`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RefreshableScriptTargetSource(BeanFactory beanFactory, String beanName, ScriptFactory scriptFactory, ScriptSource scriptSource, boolean isFactoryBean)` Create a new RefreshableScriptTargetSource.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Object` | `obtainFreshBean(BeanFactory beanFactory, String beanName)` Obtain a fresh target object, retrieving a FactoryBean if necessary.
    `protected boolean` | `requiresRefresh()` Determine whether a refresh is required through calling ScriptFactory's `requiresScriptedObjectRefresh` method.

    - ### Methods inherited from class org.springframework.aop.target.dynamic.BeanFactoryRefreshableTargetSource

      `freshTarget`

    - ### Methods inherited from class org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource

      `getLastRefreshTime, getRefreshCount, getTarget, getTargetClass, isStatic, refresh, releaseTarget, setRefreshCheckDelay`

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

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

- - ### Constructor Detail

    - #### RefreshableScriptTargetSource

          public RefreshableScriptTargetSource(BeanFactory beanFactory,
                                       String beanName,
                                       ScriptFactory scriptFactory,
                                       ScriptSource scriptSource,
                                       boolean isFactoryBean)

      Create a new RefreshableScriptTargetSource.
      Parameters:
        `beanFactory` - the BeanFactory to fetch the scripted bean from
        `beanName` - the name of the target bean
        `scriptFactory` - the ScriptFactory to delegate to for determining whether a refresh is required
        `scriptSource` - the ScriptSource for the script definition
        `isFactoryBean` - whether the target script defines a FactoryBean

  - ### Method Detail

    - #### requiresRefresh

          protected boolean requiresRefresh()

      Determine whether a refresh is required through calling ScriptFactory's `requiresScriptedObjectRefresh` method.
      Overrides:
        `requiresRefresh` in class `AbstractRefreshableTargetSource`
      Returns:
        whether a refresh is required
      See Also:
        `ScriptFactory.requiresScriptedObjectRefresh(ScriptSource)`

    - #### obtainFreshBean

          protected Object obtainFreshBean(BeanFactory beanFactory,
                               String beanName)

      Obtain a fresh target object, retrieving a FactoryBean if necessary.
      Overrides:
        `obtainFreshBean` in class `BeanFactoryRefreshableTargetSource`
      See Also:
        `BeanFactory.getBean(java.lang.String)`