org.mozilla.javascript

## Class ClassCache

- java.lang.Object
- - org.mozilla.javascript.ClassCache

- All Implemented Interfaces:
    java.io.Serializable

      public class ClassCache
      extends java.lang.Object
      implements java.io.Serializable

  Cache of generated classes and data structures to access Java runtime from JavaScript.
  Since:
    Rhino 1.5 Release 5
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassCache()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `associate(ScriptableObject topScope)` Associate ClassCache object with the given top-level scope.
    `void` | `clearCaches()` Empty caches of generated Java classes and Java reflection information.
    `static ClassCache` | `get(Scriptable scope)` Search for ClassCache object in the given scope.
    `boolean` | `isCachingEnabled()` Check if generated Java classes and Java reflection information is cached.
    `boolean` | `isInvokerOptimizationEnabled()` Deprecated. The method always returns false.
    `int` | `newClassSerialNumber()` Internal engine method to return serial number for generated classes to ensure name uniqueness.
    `void` | `setCachingEnabled(boolean enabled)` Set whether to cache some values.
    `void` | `setInvokerOptimizationEnabled(boolean enabled)` Deprecated. The method does nothing. Invoker optimization is no longer used by Rhino. On modern JDK like 1.4 or 1.5 the disadvantages of the optimization like increased memory usage or longer initialization time overweight small speed increase that can be gained using generated proxy class to replace reflection.

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

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

- - ### Constructor Detail

    - #### ClassCache

          public ClassCache()

  - ### Method Detail

    - #### get

          public static ClassCache get(Scriptable scope)

      Search for ClassCache object in the given scope. The method first calls `ScriptableObject.getTopLevelScope(Scriptable scope)` to get the top most scope and then tries to locate associated ClassCache object in the prototype chain of the top scope.
      Parameters:
        `scope` - scope to search for ClassCache object.
      Returns:
        previously associated ClassCache object or a new instance of ClassCache if no ClassCache object was found.
      See Also:
        `associate(ScriptableObject topScope)`

    - #### associate

          public boolean associate(ScriptableObject topScope)

      Associate ClassCache object with the given top-level scope. The ClassCache object can only be associated with the given scope once.
      Parameters:
        `topScope` - scope to associate this ClassCache object with.
      Returns:
        true if no previous ClassCache objects were embedded into the scope and this ClassCache were successfully associated or false otherwise.
      See Also:
        `get(Scriptable scope)`

    - #### clearCaches

          public void clearCaches()

      Empty caches of generated Java classes and Java reflection information.

    - #### isCachingEnabled

          public final boolean isCachingEnabled()

      Check if generated Java classes and Java reflection information is cached.

    - #### setCachingEnabled

          public void setCachingEnabled(boolean enabled)

      Set whether to cache some values.

      By default, the engine will cache the results of `Class.getMethods()` and similar calls. This can speed execution dramatically, but increases the memory footprint. Also, with caching enabled, references may be held to objects past the lifetime of any real usage.

      If caching is enabled and this method is called with a `false` argument, the caches will be emptied.

      Caching is enabled by default.

      Parameters:
        `enabled` - if true, caching is enabled
      See Also:
        `clearCaches()`

    - #### isInvokerOptimizationEnabled

          @Deprecated
          public boolean isInvokerOptimizationEnabled()

      Deprecated. The method always returns false.
      See Also:
        `setInvokerOptimizationEnabled(boolean enabled)`

    - #### setInvokerOptimizationEnabled

          @Deprecated
          public void setInvokerOptimizationEnabled(boolean enabled)

      Deprecated. The method does nothing. Invoker optimization is no longer used by Rhino. On modern JDK like 1.4 or 1.5 the disadvantages of the optimization like increased memory usage or longer initialization time overweight small speed increase that can be gained using generated proxy class to replace reflection.

    - #### newClassSerialNumber

          public final int newClassSerialNumber()

      Internal engine method to return serial number for generated classes to ensure name uniqueness.