Andrea Aime a écrit :
> The whole thing uses the getServiceProviderByClass(Class)
> method, which returns the one and only factory instance
> registered for a certain factory class...
I can confirm that GeoTools FactoryRegistry requires a different class for each
factory. Actually this is the way that the JDK service registry works - both
javax.imageio.spi.ServiceRegistry and the new java.util.ServiceLoader
introduced
in Java 6. This is maybe in order to be consistent with the fact that factories
are expected to be registered in the META-INF/services/ directory and are
instantiated by invoking their no-argument constructor, with no way to pass
parameters (if we forget about the hints which are a GeoTools-specific
extension).
If there is many factories of the same class, then I guess that something
distinguish those instances. Maybe a parameter given to the constructor, or
something similar. What is distinguishing the various instances?
Once the aspect that distinguish the instances is identified, is there any way
to create a class thats look like the following?
public class AlgorithmFactory extends AbstractFactory {
public Algorithm getAlgorithm(TheAspectThatDistinguish...) {
return ...
}
}
and register only the above class as the factory? This is a bit similar to
AuthorityFactory working.
Martin
------------------------------------------------------------------------------
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel