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.openjpa.util
Class ProxyManagerImpl

    java.lang.Object
      org.apache.openjpa.util.ProxyManagerImpl

All Implemented Interfaces:
  ProxyManager

    public class ProxyManagerImpl

extends Object
implements ProxyManager

Default implementation of the `ProxyManager` interface.

Author:
  Abe White

Constructor Summary
`ProxyManagerImpl()`

Method Summary
`protected boolean` | `allowsDuplicates(Class type)` Return whether the given collection type allows duplicates.
`Object` | `copyArray(Object orig)` Return a new array of the same component type as the given array and containing the same elements.
`Calendar` | `copyCalendar(Calendar orig)` Return a copy of the given calendar with the same information.
`Collection` | `copyCollection(Collection orig)` Return a new collection of the same type as the given one with a copy of all contained elements.
`Object` | `copyCustom(Object orig)` Return a copy of the given object with the same information, or null if this manager cannot copy the object.
`Date` | `copyDate(Date orig)` Return a copy of the given date with the same information.
`Map` | `copyMap(Map orig)` Return a new map of the same type as the given one with a copy of all contained key/value pairs.
`protected Constructor` | `findCopyConstructor(Class cls)` Find an appropriate copy constructor for the given type, or return null if none.
`protected Method` | `findGetter(Class type, Method setter)` Return the getter corresponding to the given setter, or null.
`protected serp.bytecode.BCClass` | `generateProxyBeanBytecode(Class type, boolean runtime)` Generate the bytecode for a bean proxy for the given type.
`protected serp.bytecode.BCClass` | `generateProxyCalendarBytecode(Class type, boolean runtime)` Generate the bytecode for a calendar proxy for the given type.
`protected serp.bytecode.BCClass` | `generateProxyCollectionBytecode(Class type, boolean runtime)` Generate the bytecode for a collection proxy for the given type.
`protected serp.bytecode.BCClass` | `generateProxyDateBytecode(Class type, boolean runtime)` Generate the bytecode for a date proxy for the given type.
`protected serp.bytecode.BCClass` | `generateProxyMapBytecode(Class type, boolean runtime)` Generate the bytecode for a map proxy for the given type.
`boolean` | `getAssertAllowedType()` Whether to perform runtime checks to ensure that all elements added to collection and map proxies are the proper element/key/value type as defined by the metadata.
`boolean` | `getDelayCollectionLoading()` Whether loading of collections should be delayed until an operation is performed that requires them to be loaded.
`boolean` | `getTrackChanges()` Whether proxies produced by this factory will use `ChangeTracker`s to try to cut down on data store operations at the cost of some extra bookkeeping overhead.
`Collection` | `getUnproxyable()` Return a mutable view of class names we know cannot be proxied correctly by this manager.
`protected boolean` | `isOrdered(Class type)` Return whether the given collection type maintains an artificial ordering.
`protected boolean` | `isSetter(Method meth)` Return whether the given method is a setter.
`protected boolean` | `isUnproxyable(Class type)` Return whether the given type is known to be unproxyable.
`protected Class` | `loadBuildTimeProxy(Class type, ClassLoader loader)` Load the proxy class generated at build time for the given type, returning null if none exists.
`protected Class<?>` | `loadDelayedProxy(Class<?> type)`
`static void` | `main(String[] args)` Usage: java org.apache.openjpa.util.proxy.ProxyManagerImpl [option]* <class name>+ Where the following options are recognized: -utils/-u <number>: Generate proxies for the standard java.util collection, map, date, and calendar classes of the given Java version.
`Proxy` | `newCalendarProxy(Class type, TimeZone zone)` Return a new calendar proxy.
`Proxy` | `newCollectionProxy(Class type, Class elementType, Comparator compare, boolean autoOff)` Return a proxy for the given collection type.
`Proxy` | `newCustomProxy(Object orig, boolean autoOff)` Return a proxy for the given object, or null if this manager cannot proxy the object.
`Proxy` | `newDateProxy(Class type)` Return a new date proxy.
`Proxy` | `newMapProxy(Class type, Class keyType, Class elementType, Comparator compare, boolean autoOff)` Return a proxy for the given map type.
`void` | `setAssertAllowedType(boolean assertType)` Whether to perform runtime checks to ensure that all elements added to collection and map proxies are the proper element/key/value type as defined by the metadata.
`void` | `setDelayCollectionLoading(boolean delay)` Whether loading of collections should be delayed until an operation is performed that requires them to be loaded.
`void` | `setTrackChanges(boolean track)` Whether proxies produced by this factory will use `ChangeTracker`s to try to cut down on data store operations at the cost of some extra bookkeeping overhead.
`void` | `setUnproxyable(String clsNames)` Provided for auto-configuration.
`protected Class` | `toProxyableCollectionType(Class type)` Return the concrete type for proxying.
`protected Class` | `toProxyableMapType(Class type)` Return the concrete type for proxying.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ProxyManagerImpl

    public ProxyManagerImpl()

Method Detail

### getTrackChanges

    public boolean getTrackChanges()

  Whether proxies produced by this factory will use `ChangeTracker`s to try to cut down on data store operations at the cost of some extra bookkeeping overhead. Defaults to true.

### setTrackChanges

    public void setTrackChanges(boolean track)

  Whether proxies produced by this factory will use `ChangeTracker`s to try to cut down on data store operations at the cost of some extra bookkeeping overhead. Defaults to true.

### getAssertAllowedType

    public boolean getAssertAllowedType()

  Whether to perform runtime checks to ensure that all elements added to collection and map proxies are the proper element/key/value type as defined by the metadata. Defaults to false.

### setAssertAllowedType

    public void setAssertAllowedType(boolean assertType)

  Whether to perform runtime checks to ensure that all elements added to collection and map proxies are the proper element/key/value type as defined by the metadata. Defaults to false.

### getDelayCollectionLoading

    public boolean getDelayCollectionLoading()

  Whether loading of collections should be delayed until an operation is performed that requires them to be loaded. This property only applies to proxies that implement java.util.Collection (ie. not arrays or maps). Defaults to false.

  Specified by:
    `getDelayCollectionLoading` in interface `ProxyManager`
  Returns:

### setDelayCollectionLoading

    public void setDelayCollectionLoading(boolean delay)

  Whether loading of collections should be delayed until an operation is performed that requires them to be loaded. Defaults to false.

### getUnproxyable

    public Collection getUnproxyable()

  Return a mutable view of class names we know cannot be proxied correctly by this manager.

### setUnproxyable

    public void setUnproxyable(String clsNames)

  Provided for auto-configuration. Add the given semicolon-separated class names to the set of class names we know cannot be proxied correctly by this manager.

### copyArray

    public Object copyArray(Object orig)

  Description copied from interface: `ProxyManager`
  Return a new array of the same component type as the given array and containing the same elements. Works for both primitive and object array types.

  Specified by:
    `copyArray` in interface `ProxyManager`

### copyCollection

    public Collection copyCollection(Collection orig)

  Description copied from interface: `ProxyManager`
  Return a new collection of the same type as the given one with a copy of all contained elements.

  Specified by:
    `copyCollection` in interface `ProxyManager`

### newCollectionProxy

    public Proxy newCollectionProxy(Class type,
                                    Class elementType,
                                    Comparator compare,
                                    boolean autoOff)

  Description copied from interface: `ProxyManager`
  Return a proxy for the given collection type. The returned collection will allow only addition of elements assignable from the given element type and will use the given comparator, if it is not null.

  Specified by:
    `newCollectionProxy` in interface `ProxyManager`

### copyMap

    public Map copyMap(Map orig)

  Description copied from interface: `ProxyManager`
  Return a new map of the same type as the given one with a copy of all contained key/value pairs.

  Specified by:
    `copyMap` in interface `ProxyManager`

### newMapProxy

    public Proxy newMapProxy(Class type,
                             Class keyType,
                             Class elementType,
                             Comparator compare,
                             boolean autoOff)

  Description copied from interface: `ProxyManager`
  Return a proxy for the given map type. The returned map will allow only addition of keys/values assignable from the given keyType/valueType, and will use the given comparator, if it is not null.

  Specified by:
    `newMapProxy` in interface `ProxyManager`

### copyDate

    public Date copyDate(Date orig)

  Description copied from interface: `ProxyManager`
  Return a copy of the given date with the same information.

  Specified by:
    `copyDate` in interface `ProxyManager`

### newDateProxy

    public Proxy newDateProxy(Class type)

  Description copied from interface: `ProxyManager`
  Return a new date proxy.

  Specified by:
    `newDateProxy` in interface `ProxyManager`

### copyCalendar

    public Calendar copyCalendar(Calendar orig)

  Description copied from interface: `ProxyManager`
  Return a copy of the given calendar with the same information.

  Specified by:
    `copyCalendar` in interface `ProxyManager`

### newCalendarProxy

    public Proxy newCalendarProxy(Class type,
                                  TimeZone zone)

  Description copied from interface: `ProxyManager`
  Return a new calendar proxy.

  Specified by:
    `newCalendarProxy` in interface `ProxyManager`

### copyCustom

    public Object copyCustom(Object orig)

  Description copied from interface: `ProxyManager`
  Return a copy of the given object with the same information, or null if this manager cannot copy the object.

  Specified by:
    `copyCustom` in interface `ProxyManager`

### newCustomProxy

    public Proxy newCustomProxy(Object orig,
                                boolean autoOff)

  Description copied from interface: `ProxyManager`
  Return a proxy for the given object, or null if this manager cannot proxy the object.

  Specified by:
    `newCustomProxy` in interface `ProxyManager`

### toProxyableCollectionType

    protected Class toProxyableCollectionType(Class type)

  Return the concrete type for proxying.

### toProxyableMapType

    protected Class toProxyableMapType(Class type)

  Return the concrete type for proxying.

### isUnproxyable

    protected boolean isUnproxyable(Class type)

  Return whether the given type is known to be unproxyable.

### loadBuildTimeProxy

    protected Class loadBuildTimeProxy(Class type,
                                       ClassLoader loader)

  Load the proxy class generated at build time for the given type, returning null if none exists.

### loadDelayedProxy

    protected Class<?> loadDelayedProxy(Class<?> type)

### generateProxyCollectionBytecode

    protected serp.bytecode.BCClass generateProxyCollectionBytecode(Class type,
                                                                    boolean runtime)

  Generate the bytecode for a collection proxy for the given type.

### generateProxyMapBytecode

    protected serp.bytecode.BCClass generateProxyMapBytecode(Class type,
                                                             boolean runtime)

  Generate the bytecode for a map proxy for the given type.

### generateProxyDateBytecode

    protected serp.bytecode.BCClass generateProxyDateBytecode(Class type,
                                                              boolean runtime)

  Generate the bytecode for a date proxy for the given type.

### generateProxyCalendarBytecode

    protected serp.bytecode.BCClass generateProxyCalendarBytecode(Class type,
                                                                  boolean runtime)

  Generate the bytecode for a calendar proxy for the given type.

### generateProxyBeanBytecode

    protected serp.bytecode.BCClass generateProxyBeanBytecode(Class type,
                                                              boolean runtime)

  Generate the bytecode for a bean proxy for the given type.

### allowsDuplicates

    protected boolean allowsDuplicates(Class type)

  Return whether the given collection type allows duplicates.

### isOrdered

    protected boolean isOrdered(Class type)

  Return whether the given collection type maintains an artificial ordering.

### isSetter

    protected boolean isSetter(Method meth)

  Return whether the given method is a setter.

### findGetter

    protected Method findGetter(Class type,
                                Method setter)

  Return the getter corresponding to the given setter, or null.

### findCopyConstructor

    protected Constructor findCopyConstructor(Class cls)

  Find an appropriate copy constructor for the given type, or return null if none.

### main

    public static void main(String[] args)
                     throws ClassNotFoundException,
                            IOException

  Usage: java org.apache.openjpa.util.proxy.ProxyManagerImpl [option]* <class name>+
  Where the following options are recognized:
  - -utils/-u <number>: Generate proxies for the standard java.util collection, map, date, and calendar classes of the given Java version. Use 4 for Java 1.4, 5 for Java 5, etc.
  The main method generates .class files for the proxies to the classes given on the command line. It writes the generated classes to beside the ProxyManagerImpl.class file if possible; otherwise it writes to the current directory. The proxy manager looks for these classes before generating its own proxies at runtime.

  Throws:
    `ClassNotFoundException`
    `IOException`

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 © 2006-2013 Apache Software Foundation. All Rights Reserved.