Encodes Feature instances to an arbitrary format and decodes that arbitrary format to LuciadRIA Feature instances.

A Codec is typically used by a Store to decode the server response and to encode the LuciadRIA Features so they can be sent back to the server. Consult the class documentation of the Store class for more information.

Note: most of the methods in the API are optional. The presence of such an optional method indicates support for that feature. For instance a Store which is read-only only needs a Codec which provides a decode method but does not need an encode method. It is up to the Store implementations to clearly document which methods they require to be present on the Codec.

Users of this class should always check whether such an optional method is available before calling the method, as illustrated below:

  if ( typeof codec.encode === "function" ){
// encode method is available and can be called
codec.encode( ... );

Type Parameters

  • TFeature extends Feature = Feature

    Represents the type of Feature instances that are handled by the codec.






  • Decodes the server response from an arbitrary format to a Cursor of Feature instances. Note that by returning a Cursor it is possible to perform lazy decoding (only decoding the Feature when it is requested).


    Returns Cursor<TFeature> | Promise<Cursor<TFeature>>

    A Cursor of Features corresponding to the server response. All Features should be defined in the same reference.

  • Encodes a Feature instances into an arbitrary representation, specific to this Codec. This is an optional method.


    • featureCursor: Cursor<TFeature>

      a Cursor of LuciadRIA Features which must be encoded to the arbitrary representation

    Returns EncodeResult

    The encoded version of the features