public final class ElementFactory
extends java.lang.Object
ElementFactory
class is responsible for creating intances of Element
s.
The type of Element
that gets created depends on the object identifier that is passed into the findOrCreate(URL, Project)
. The ElementFactory
makes use of registered ElementRecognizer
instances to determine what Element
class corresponds to a particular URL
.
Element
instances created by the ElementFactory
are generally not cached. It is up to a ElementRecognizer
to determine if the instances it creates should be cached or not.
Element
, ElementRecognizer
Constructor and Description |
---|
ElementFactory() |
Modifier and Type | Method and Description |
---|---|
static void |
addRecognizer(ElementRecognizer recognizer)
Registers a
ElementRecognizer , appending it to the end of the list of recognizers. |
static Element |
findOrCreate(java.net.URL url, Project project)
Returns an
Element associated with the identifier . |
static void |
removeRecognizer(ElementRecognizer recognizer)
Unregisters a
ElementRecognizer . |
public static Element findOrCreate(java.net.URL url, Project project) throws java.lang.IllegalAccessException, java.lang.InstantiationException
Element
associated with the identifier
. This method requests the ElementRecognizer
that recoginizes the element identifier
to create or find the associated element instance. It is left to the recognizer to decide whether created elements should be cached. A recognizer that does not cache newly created elements may return a new element instance every time this method is called.url
- unique url identifier.project
- the project within which the element should be created.java.lang.IllegalAccessException
- if the Element
class or its initializer is not accessible.java.lang.InstantiationException
- if the Element
class is an abstract class, an interface, an array class, a primitive type, or void; or if the instantiation fails for some other reason.public static void addRecognizer(ElementRecognizer recognizer)
ElementRecognizer
, appending it to the end of the list of recognizers.recognizer
- instance of a ElementRecognizer
implementation.public static void removeRecognizer(ElementRecognizer recognizer)
ElementRecognizer
.recognizer
- instance of a ElementRecognizer
implemenation.