|
|||||||||
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 factoryMethod 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
|
Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |