@author Ben YuJan 6, 2006 12:38:18 AM
Enhancer
interface or using reflection. In addition, to intercept methods called during object construction you must use these methods instead of reflection.
@author Juozas Baliuka baliuka@mwm.lt
@version $Id: Factory.java,v 1.13 2004/06/24 21:15:20 herbyderby Exp $
A Factory
creates an object without using an input parameter. If an input parameter is required, then {@link Transformer} is more appropriate.
Standard implementations of common factories are provided by {@link FactoryUtils}. These include factories that return a constant, a copy of a prototype or a new instance. @since Commons Collections 2.1 @version $Revision: 1.9 $ $Date: 2004/04/14 20:08:57 $ @author Arron Bates @author Stephen Colebourne
@author Ben Yu Jan 6, 2006 12:38:18 AM
Pluto Service Providers
org.apache.pluto.services.information.InformationProviderService
org.apache.pluto.services.information.DynamicInformationProvider
org.apache.pluto.services.information.PortletActionProvider
org.apache.pluto.services.information.PortalContextProvider
@version $Id: Factory.java 35916 2004-03-02 14:55:19Z cziegeler $
This interfaces forms the core of the Geotools plug-in system, by which capabilities can be added to the library at runtime. Each sub-interface defines a service. Most services are set up with concrete implementation being registered for use in a service registry, which acts as a container for service implementations.
Service registries don't need to be a Geotools implementation. They can be (but are not limited to) any {@link javax.imageio.spi.ServiceRegistry} subclass. If the standard{@code ServiceRegistry} (or its Geotools extension {@link FactoryRegistry}) is selected as a container for services, then factory implementations should be declared as below (select only one way):
In addition, it is recommended that implementations provide a constructor expecting a single {@link Hints} argument. This optional argument gives to the user some controlof the factory's low-level details. The amount of control is factory specific. The geotools library defines a global class called {@link Hints} that is ment as API (i.e. you can assumethese hints are supported). Factories may also provide information on their own custom hints as part of their javadoc class description.
Examples:An application supplied a {@linkplain Hints#DATUM_FACTORY datum factory hint}, being passed to a {@linkplain org.opengis.referencing.datum.DatumAuthorityFactory datum authorityfactory} so that all datum created from an authority code will come from the supplied datumfactory.
An application supplied a {@link org.geotools.feature.FeatureFactory} (ensuring allconstructed features support the Eclipse's {@code IAdaptable} interface), being passed to a{@link org.geotools.feature.FeatureTypeFactory} so that all {@code FeatureTypes}constructed will produce features supporting the indicated interface.
As seen in those examples this concept of a hint becomes more interesting when the operation being controlled is discovery of other services used by the Factory. By supplying appropriate hints one can chain together several factories and retarget them to an application specific task.
@author Ian Schneider @author Martin Desruisseaux @author Jody Garnett @source $URL$ @version $Id$ @see Hints @see FactoryRegistryA factory may not have a TypeVariable or a Wildcard as its actual type. A factory may have any scope, and the scope of the factory is independent of the scope of the type it is providing.
The scope and qualifiers of the objects this factory is producing must be placed on the provide method itself. Objects created with this method will be put into the scope on the provide method, and will have the qualifiers of the provide method.
A factory is generally added with the {@link FactoryDescriptors} helperclass, though factories can also be registered independently. @author jwells @param < T> This must be the type of entity for which this is a factory.For example, if this were a factory for Foo, then your factory must implement Factory<Foo>.
This factory is the main entry point for client code, to access jOOQ classes and functionality. Here, you can instanciate all of those objects that cannot be accessed through other objects. For example, to create a {@link Field}representing a constant value, you can write:
Field<String> field = Factory.val("Hello World")
Also, some SQL clauses cannot be expressed easily with DSL, for instance the EXISTS clause, as it is not applied on a concrete object (yet). Hence you should write
Condition condition = Factory.exists(new Factory().select(...));
A Factory
holds a reference to a JDBC {@link Connection} andoperates upon that connection. This means, that a Factory
is not thread-safe, since a JDBC Connection is not thread-safe either.
@author Lukas Eder
Enhancer
interface or using reflection. In addition, to intercept methods called during object construction you must use these methods instead of reflection.
@author Juozas Baliuka baliuka@mwm.lt
@version $Id: Factory.java,v 1.13 2004/06/24 21:15:20 herbyderby Exp $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|