public final class TLcyCompositeLayerMeasureProviderFactory extends TLcyGenericComposite<ILcdLayerMeasureProviderFactory> implements ILcdLayerMeasureProviderFactory
Composite implementation (see composite design pattern) of ILcdLayerMeasureProviderFactory
. It
keeps a list of associated ILcdLayerMeasureProviderFactory
instances: one can add and remove other
ILcdLayerMeasureProviderFactory
instances to this ILcdLayerMeasureProviderFactory
.
When creating a new TLcyCompositeLayerMeasureProviderFactory
using the default
constructor (see TLcyCompositeLayerMeasureProviderFactory()
), the created instance will
only work on/with the ILcdLayerMeasureProviderFactorys registered
on this composite instance (see addLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
and removeLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
).
When creating a new TLcyCompositeLayerMeasureProviderFactory
using the constructor
specifying an ILcyLucyEnv
instance (see TLcyCompositeLayerMeasureProviderFactory(com.luciad.lucy.ILcyLucyEnv)
), the created instance will
work on the Lucy back-end services. It will use
all registered ILcdLayerMeasureProviderFactory
instances of the
Lucy back-end, adding and/or removing an ILcdLayerMeasureProviderFactory
will
add/remove the ILcdLayerMeasureProviderFactory
as service from Lucy, ... .
This class can for example be used to retrieve measures for a view:
TLcyCompositeLayerMeasureProviderFactory factory = new TLcyCompositeLayerMeasureProviderFactory(lucyEnv);
TLcdGXYViewMeasureProvider measureProvider = new TLcdGXYViewMeasureProvider(view, null, Collections.singletonList(factory));
ALcdMeasureProvider.Parameters parameters = ALcdMeasureProvider.Parameters.newBuilder().build();
List<TLcdISO19103Measure[]> measures = measureProvider.retrieveMeasuresAt(point, pointReference, parameters);
PRIORITY_DEFAULT, PRIORITY_FALLBACK
Constructor and Description |
---|
TLcyCompositeLayerMeasureProviderFactory()
Default constructor.
|
TLcyCompositeLayerMeasureProviderFactory(ILcyLucyEnv aLucyEnv)
Construct a
TLcyCompositeLayerMeasureProviderFactory working on the Lucy back-end. |
Modifier and Type | Method and Description |
---|---|
void |
addLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory)
Adds the given
ILcdLayerMeasureProviderFactory to this composite measure provider
factory. |
void |
addLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory,
int aPriority)
Adds the given
ILcdLayerMeasureProviderFactory to this composite measure provider
factory, with the given priority. |
ALcdMeasureProvider |
createMeasureProvider(ILcdLayer aLayer,
ILcdView aView)
Creates a new measure provider, based on the given layer and view, or
null if no
measure provider can be created. |
List<ILcdLayerMeasureProviderFactory> |
getList()
Returns an unmodifiable
List containing all registered instances of
ILcdLayerMeasureProviderFactory . |
void |
removeLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory)
Removes the given
ILcdLayerMeasureProviderFactory from this composite measure provider
factory. |
add, add, getPriority, iterator, remove
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public TLcyCompositeLayerMeasureProviderFactory()
Default constructor. No ILcdLayerMeasureProviderFactory
s are associated.
The created instance will only work on the ILcdLayerMeasureProviderFactory
instances
registered to it. If you want to use all registered ILcdLayerMeasureProviderFactory
instances
of the Lucy back-end, use TLcyCompositeLayerMeasureProviderFactory(com.luciad.lucy.ILcyLucyEnv)
instead.
public TLcyCompositeLayerMeasureProviderFactory(ILcyLucyEnv aLucyEnv)
Construct a TLcyCompositeLayerMeasureProviderFactory
working on the Lucy back-end.
It will use all ILcdLayerMeasureProviderFactory
instances registered to the back-end, and
adding and/or removing ILcdLayerMeasureProviderFactory
s to/from this
ILcdLayerMeasureProviderFactory
will respectively add/remove it as service from the
back-end.
If you want to create a TLcyCompositeLayerMeasureProviderFactory
which does not use the
back-end, use TLcyCompositeLayerMeasureProviderFactory()
instead.
aLucyEnv
- The Lucy back-end.TLcyCompositeLayerMeasureProviderFactory()
,
ILcyLucyEnv.addService(Object, int)
,
ILcyLucyEnv.removeService(Object)
public ALcdMeasureProvider createMeasureProvider(ILcdLayer aLayer, ILcdView aView)
ILcdLayerMeasureProviderFactory
null
if no
measure provider can be created.createMeasureProvider
in interface ILcdLayerMeasureProviderFactory
aLayer
- the layer for which to create a measure provideraView
- the view for which to create a measure providernull
if no measure provider can be created for the given layer
and view.public void addLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory)
Adds the given ILcdLayerMeasureProviderFactory
to this composite measure provider
factory.
If the constructor specifying an ILcyLucyEnv
is used, the
ILcdLayerMeasureProviderFactory
will be registered as a service on the Lucy back-end
(see ILcyLucyEnv.addService(Object, int)
). When calling ILcyLucyEnv.getServices(Class)
afterwards, aLayerMeasureProviderFactory
will only be included in the returned list when the requested class was
ILcdLayerMeasureProviderFactory.class
.
Note: if you want to remove the registered ILcdLayerMeasureProviderFactory
afterwards, use removeLayerMeasureProviderFactory
and not ILcyLucyEnv.removeService(Object)
.
aLayerMeasureProviderFactory
- the measure provider factory to addremoveLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
public void addLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory, int aPriority)
Adds the given ILcdLayerMeasureProviderFactory
to this composite measure provider
factory, with the given priority.
If the constructor specifying an ILcyLucyEnv
is used, the
ILcdLayerMeasureProviderFactory
will be registered as a service on the Lucy back-end
(see ILcyLucyEnv.addService(Object, int)
). When calling ILcyLucyEnv.getServices(Class)
afterwards, aLayerMeasureProviderFactory
will only be included in the returned list when the requested class was
ILcdLayerMeasureProviderFactory.class
.
Note: if you want to remove the registered ILcdLayerMeasureProviderFactory
afterwards, use removeLayerMeasureProviderFactory
and not ILcyLucyEnv.removeService(Object)
.
aLayerMeasureProviderFactory
- the measure provider factory to addaPriority
- the priorityremoveLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
public void removeLayerMeasureProviderFactory(ILcdLayerMeasureProviderFactory aLayerMeasureProviderFactory)
Removes the given ILcdLayerMeasureProviderFactory
from this composite measure provider
factory. If the given ILcdLayerMeasureProviderFactory
was never added before, nothing
happens.
If the constructor specifying an ILcyLucyEnv
is used, the
ILcdLayerMeasureProviderFactory
will be removed as service from the Lucy back-end
(see ILcyLucyEnv.removeService(Object)
).
Note: it is only possible to remove ILcdLayerMeasureProviderFactory
instances
which were registered using the addLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
method.
aLayerMeasureProviderFactory
- A ILcdLayerMeasureProviderFactory
to remove.addLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory)
,
addLayerMeasureProviderFactory(com.luciad.util.measure.ILcdLayerMeasureProviderFactory, int)
public List<ILcdLayerMeasureProviderFactory> getList()
Returns an unmodifiable List
containing all registered instances of
ILcdLayerMeasureProviderFactory
.
getList
in class TLcyGenericComposite<ILcdLayerMeasureProviderFactory>
List
containing all registered instances of
ILcdLayerMeasureProviderFactory
.