public interface ILcdModelProvider extends ILcdOGCModelProvider
Modifier and Type | Method and Description |
---|---|
ILcdModel |
getModel(String aSourceName,
ALcdRequestContext aRequestContext)
Returns the
ILcdModel corresponding to a source name and request context. |
default String |
getModelUpdateSequence(String aSourceName,
ALcdRequestContext aRequestContext)
Returns the update sequence value associated with the mode identified by the given source name.
|
dispose
close
ILcdModel getModel(String aSourceName, ALcdRequestContext aRequestContext) throws IOException
ILcdModel
corresponding to a source name and request context.getModel
in interface ILcdOGCModelProvider
aSourceName
- the source name of the model.aRequestContext
- the request context, which is an instance of type TLcdWMSRequestContext
.
This can be null if the method is called by a process which is not handling a request.ILcdModel
corresponding to a source name.IOException
- if the model can not be returned (because decoding fails).default String getModelUpdateSequence(String aSourceName, ALcdRequestContext aRequestContext) throws IOException
Returns the update sequence value associated with the mode identified by the given source name. The update sequence identifies the state of the model.
The update sequence should comply with a number of conditions:
By default, this method always returns "0"
. This means that the default implementation assumes that
models never change. If models change, this method should be implemented differently.
One way to generate update sequences would be to use a (persistent) counter that gets incremented on every
(file system) change. Another way would be to use System.currentTimeMillis()
from a correct clock.
This method must be used by model provider implementations that contain a model cache. The result of this method must be used to invalidate this cache if needed.
Because of caching on the request/view level, it is possible that the getModel
method
is called infrequently. This method will need to be called at least once for each request though. This means
that for performance reasons, this method needs to have a fast implementation, ideally avoiding any I/O.
The ALcdWMSLayer
class has an update sequence concept as well. See
ALcdWMSLayer.getUpdateSequence()
for more information.
getModelUpdateSequence
in interface ILcdOGCModelProvider
aRequestContext
- the request context, which is an instance of type TLcdWMSRequestContext
.
This can be null if the method is called by a process which is not handling a request.aSourceName
- the source name of the model.IOException
- if the update sequence can not be determined