|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectuk.ac.starlink.util.ObjectFactory<T>
public class ObjectFactory<T>
Manages dynamic creation of objects from a known set of classes. An ObjectFactory keeps a list of classes with associated nicknames; the idea is that you can obtain an instance of a given class by supplying the nickname in question. Instead of a nickname you can use the fully qualified classname, whether or not it has previously been registered. Any class registered must be a subclass of the superclass specified when this factory is constructed, and must have a no-arg constructor.
| Constructor Summary | |
|---|---|
ObjectFactory(java.lang.Class<T> clazz)
Constructor. |
|
| Method Summary | |
|---|---|
T |
createObject(java.lang.String name)
Constructs and returns an object from one of the classes registered with this factory. |
java.lang.Class<T> |
getFactoryClass()
Returns the class of which any object created by this factory is guaranteed to be an instance. |
java.lang.String[] |
getNickNames()
Returns a list of the nicknames which have been registered. |
boolean |
isRegistered(java.lang.String name)
Indicates whether this factory knows about a given name. |
void |
register(java.lang.String nickName,
java.lang.String className)
Registers a class with its nickname. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ObjectFactory(java.lang.Class<T> clazz)
clazz - type which must be a supertype of any class registered
with this factory| Method Detail |
|---|
public java.lang.Class<T> getFactoryClass()
public void register(java.lang.String nickName,
java.lang.String className)
nickName - nicknameclassName - fully-qualified class namepublic java.lang.String[] getNickNames()
public boolean isRegistered(java.lang.String name)
name - name
name can sensibly be passed to
createObject(java.lang.String)
public T createObject(java.lang.String name)
throws LoadException
name - classname/nickname of class to instantiate
LoadException - if the load fails for unsurprising reasons
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||