AR System Java API

com.bmc.arsys.api
Class ExtendedClassRegistry

java.lang.Object
  extended by com.bmc.arsys.api.ExtendedClassRegistry

public final class ExtendedClassRegistry
extends Object

ExtendedClassRegistry acts as a registration mechanism for client programs to designate their own implementation classesthat extend AR System Java API classes (i.e. classes in com.bmc.arsys.api package, for example ActiveLink, AttachmentInfo, AssignFilterApiInfo and so on).
Such registration would allow AR System API implementation to instantiate the user prefered extended type objects as needed, instead of its own raw types. For example, if a client extends ActiveLink class (say as ActiveLinkEx) and registers it with Java API using ExtendedClassRegistry; then the Java API would instantiate an ActiveLinkEx object (instead of the typical ActiveLink) during ActiveLinkFactory.find(), ActiveLinkFactory.findObjects() etc.

In order for a user prefered extended type suitable for registering, it must meet the requirements listed below:



Following Java code snippet shows an example usage:
 
 //Instantiate a registry... ExtendedClassRegistry registry = new ExtendedClassRegistry(); //... register extended
 types... registry.registerExtendedClass(ActiveLink.class, ActiveLinkEx.class); // ActiveLinkEx above is your own
 class that extends ActiveLink. registry.registerExtendedClass(WorkflowConnectInfo.class,
 WorkflowConnectInfoEx.class); registry.registerExtendedClass(Attachment.class, AttachmentEx.class);
 registry.registerExtendedClass(ActiveLinkActionInfo.class, ActiveLinkActionInfoEx.class); // Above xxxEx classes
 extend corresponding xxx Java API class // These extending classes optionally can implement
 ExtendedClassCallbackHandler interface. //... attach this registry to your ARServerUser object...
 ARServerUser su = new ARServerUser("", "", "", ""); su.setExtendedClassRegistry(ecr); //
 ... now issue AR System API calls as usual ... ActiveLinkCriteria criteria = new ActiveLinkCriteria();
 criteria.setRetrieveAll(true); // Here, observe that we're receiving an ActiveLinkEx from Java API ActiveLinkEx
 actLink = ActiveLinkFactory.findByKey(su, "", criteria); WorkflowObjectListCriteria listCriteria = new
 WorkflowObjectListCriteria (); // Here, observe that we're receiving an ActiveLinkEx[] from Java API ActiveLinkEx[]
 actLinks = ActiveLinkFactory.findObjects(su, listCriteria, criteria);
 
 


Constructor Summary
ExtendedClassRegistry()
           
 
Method Summary
<T> void
copy(Class clazz, T dest, T src)
           
<T> Object
copyArray(T[] array, boolean onlyIfExtended)
           
<T> Object
copyList(List<T> list, boolean onlyIfExtended)
           
<K,V> Object
copyMap(Map<K,V> map, boolean onlyIfExtended)
           
 boolean isExtendingClassRegistered(Class c)
           
<T> T
newInstance(Class<T> clazz)
           
static
<T> T
newInstance(ExtendedClassRegistry ecr, Class<T> clazz)
           
<T> T
newInstance(T src)
           
<T> T[]
newInstanceArray(Class<T> clazz, int size)
           
static
<T> T[]
newInstanceArray(ExtendedClassRegistry ecr, Class<T> clazz, int size)
           
 void registerExtendedClass(Class<?> clazz, Class<?> extendedClazz)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtendedClassRegistry

public ExtendedClassRegistry()
Method Detail

isExtendingClassRegistered

public boolean isExtendingClassRegistered(Class c)

registerExtendedClass

public void registerExtendedClass(Class<?> clazz,
                                  Class<?> extendedClazz)
                           throws IllegalArgumentException
Throws:
IllegalArgumentException

newInstanceArray

public static <T> T[] newInstanceArray(ExtendedClassRegistry ecr,
                                       Class<T> clazz,
                                       int size)
                            throws IllegalAccessException,
                                   InstantiationException
Throws:
IllegalAccessException
InstantiationException

newInstanceArray

public <T> T[] newInstanceArray(Class<T> clazz,
                                int size)
                     throws IllegalAccessException,
                            InstantiationException
Throws:
IllegalAccessException
InstantiationException

newInstance

public static <T> T newInstance(ExtendedClassRegistry ecr,
                                Class<T> clazz)

newInstance

public <T> T newInstance(Class<T> clazz)

newInstance

public <T> T newInstance(T src)

copy

public <T> void copy(Class clazz,
                     T dest,
                     T src)

copyArray

public <T> Object copyArray(T[] array,
                            boolean onlyIfExtended)

copyList

public <T> Object copyList(List<T> list,
                           boolean onlyIfExtended)

copyMap

public <K,V> Object copyMap(Map<K,V> map,
                            boolean onlyIfExtended)
               throws IllegalAccessException,
                      InstantiationException
Throws:
IllegalAccessException
InstantiationException

AR System Java API

? Copyright 2006, 2007 BMC Software, Inc.