Class Layer

java.lang.Object
com.kheops.jmap.metadata.LocalizedObject
com.kheops.jmap.client.layers.Layer
All Implemented Interfaces:
JMapEventDispatcher, ILayer, LayerConstants, LayerNode, Serializable, Cloneable, Comparable<Layer>
Direct Known Subclasses:
RasterLayer, VectorLayer

public abstract class Layer extends LocalizedObject implements ILayer, LayerNode, LayerConstants, JMapEventDispatcher, Cloneable, Comparable<Layer>
This abstract class represents a layer of information on the map. A layer is an organized set of spatial data and attributes that are displayed together.

All layer instances are managed by a layer manager (LayerManager). When the map is drawn on a view (View), all layers managed by the layer manager associated with this view are drawn, one on top of the other, starting with the lower position layer up to the higher position layer. Every layer has one or more style objects (Style) that define how the content of the layer is rendered in the view.

See Also:
  • Field Details

    • LAYER_ID_LABELS

      public static final int LAYER_ID_LABELS
      This constant refers to the reserved layer id for the layer containing the labels
    • LAYER_ID_HIGHLIGHT

      public static final int LAYER_ID_HIGHLIGHT
      This constant refers to the reserved layer id for the layer containing highlight objects NOTE: different than SYS_DRAWINGS layer because the highlight tool constantly changes its location depending on the highlighted layer
    • LAYER_ID_USER_DRAWINGS

      public static final int LAYER_ID_USER_DRAWINGS
      Set the correct numbers for the constants below, and use constants instead of specifying the ID everywhere in JMap This constant refers to the reserved layer id for the layer containing the user drawings
    • LAYER_ID_TMP_DRAWINGS

      public static final int LAYER_ID_TMP_DRAWINGS
      This constant refers to the reserved layer id for the layer containing the temporary drawings Ex: DistanceTool, temporary line drawn when the user moves the mouse 3D Distance/routing, possible route choices
    • LAYER_ID_SYS_DRAWINGS

      public static final int LAYER_ID_SYS_DRAWINGS
      This constant refers to a reserved layer id used by drawing tools.
    • LAYER_ID_USER_LABELS

      public static final int LAYER_ID_USER_LABELS
      This constant refers to a reserved layer id used for user layer labeling.
    • LAYER_ID_INITIAL_VIEW_BOUNDS

      public static final int LAYER_ID_INITIAL_VIEW_BOUNDS
      This constant refers to a reserved layer id used by the administration extension.
    • LAYER_ID_MARKERS

      public static final int LAYER_ID_MARKERS
      This constant refers to a reserved layer id used for the View Markers.
    • DRAW_OPTIONS_SYNC

      public static final int DRAW_OPTIONS_SYNC
      Constant used to specify that layer drawing should be done synchronously.
      See Also:
    • DEFAULT_DRAW_STATE

      public static final K2DTransform DEFAULT_DRAW_STATE
    • id

      protected int id
      The id of the layer.
    • name

      protected String name
      The name of the layer.
    • description

      protected String description
      The description of the layer.
    • elementType

      protected int elementType
      The type of elements this layer contains.
    • layerProperties

      protected long layerProperties
      Layer properties are stored as bitwise values in this property.
    • readOnlyProperties

      protected long readOnlyProperties
    • maximumVisibleScale

      protected double maximumVisibleScale
    • minimumVisibleScale

      protected double minimumVisibleScale
    • styleManager

      protected StyleManager styleManager
    • eventDispatcher

      protected final LayerEventDispatcher eventDispatcher
    • lastUpdateTime

      protected long lastUpdateTime
    • elementFactory

      protected K2DElementFactory elementFactory
    • infoReportConfig

      protected JMapClientInfoReportConfig infoReportConfig
    • verbose

      protected boolean verbose
    • drawState

      protected K2DTransform drawState
    • precisionModel

      protected PrecisionModel precisionModel
    • metadataUrl

      protected String metadataUrl
    • dynamicRefresh

      protected int dynamicRefresh
  • Constructor Details

    • Layer

      protected Layer()
      Empty constructor. Useful for subclasses.
    • Layer

      public Layer(int id, String name, int elementType)
      Creates a new Layer using the specified parameters.
      The new layer will be configured with only one tile with an infinite size.
      Parameters:
      id - the id of the new layer.
      name - the name.
      elementType - the element type.
    • Layer

      @Deprecated public Layer(int id, int geometryType, int elementType, String name, boolean isVisible)
      Deprecated.
      Creates a new Layer using the specified parameters.
      The new layer will be configured with one infinite tile.
      Parameters:
      id - the id of the new layer.
      geometryType - the geometry type.
      elementType - the element type.
      name - the name.
      isVisible - whether this layer is visible.
    • Layer

      public Layer(LayerInfo layerInfo)
      Initializes the new layer using the specified JMapClientLayerInfo.
      Parameters:
      layerInfo - the new layer configuration.
  • Method Details

    • getNextUserLayerId

      public static int getNextUserLayerId()
    • getNextSystemLayerId

      public static int getNextSystemLayerId()
    • isProjectLayerId

      public static boolean isProjectLayerId(int layerId)
    • isSystemLayerId

      public static boolean isSystemLayerId(int layerId)
    • isReservedLayerId

      public static boolean isReservedLayerId(int layerId)
    • isUserLayerId

      public static boolean isUserLayerId(int layerId)
    • isPersonalLayerId

      public static boolean isPersonalLayerId(int layerId)
    • initEventDispatcher

      protected LayerEventDispatcher initEventDispatcher()
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets the verbose mode of the layer.
      Parameters:
      verbose - the verbose mode
    • getVerbose

      public boolean getVerbose()
      Returns whether the verbose mode is enabled.
      Returns:
      the verbose mode.
    • setProperty

      public final void setProperty(long property, boolean enabled)
      Sets the state for the specified property.
      Specified by:
      setProperty in interface ILayer
      Parameters:
      property - the property to set.
      enabled - the property state.
    • setReadOnlyProperty

      public final void setReadOnlyProperty(long property, boolean isReadOnly)
      Sets the read-only state for the specified property.
      Specified by:
      setReadOnlyProperty in interface ILayer
      Parameters:
      property - the property to set.
      isReadOnly - the read-only state.
    • getReadOnlyProperties

      public long getReadOnlyProperties()
      Returns the a mask which contains all read-only properties for this layer.
      Specified by:
      getReadOnlyProperties in interface ILayer
      Returns:
      the mask which defines read-only properties of the layer.
    • setReadOnlyProperties

      public void setReadOnlyProperties(long value)
      Sets all read-only properties for the layer.
      Specified by:
      setReadOnlyProperties in interface ILayer
      Parameters:
      value - a bitwise value that contains all read-only layer properties.
    • getLayerProperties

      public long getLayerProperties()
      Returns a bitwise value that contains all layer properties.
      Specified by:
      getLayerProperties in interface ILayer
      Returns:
      a value that contains all layer properties.
    • setLayerProperties

      public void setLayerProperties(long value)
      Sets all layer properties.
      Specified by:
      setLayerProperties in interface ILayer
      Parameters:
      value - a bitwise value that contains all layer properties.
    • getLastUpdateTime

      public long getLastUpdateTime()
      Gets the last updated time
      Specified by:
      getLastUpdateTime in interface ILayer
      Returns:
      the time of the last update
    • setLastUpdateTime

      public void setLastUpdateTime(long lastUpdateTime)
      Sets the last updated time
      Specified by:
      setLastUpdateTime in interface ILayer
      Parameters:
      lastUpdateTime - the last updated time
    • addLayerEventListener

      public void addLayerEventListener(LayerEventListener listener)
      Added the specified listener to the layer listeners list.
      Parameters:
      listener - the listener to add.
    • removeLayerEventListener

      public void removeLayerEventListener(LayerEventListener listener)
      Removes the specified listener from the layer listeners list.
      Parameters:
      listener - the listener to remove.
    • isDrawable

      public boolean isDrawable(double scale)
      Returns true if this layer should be drawn at the specified scale. This is based on the minimum and maximum zoom scales stored in the style of this layer.
      Parameters:
      scale - the scale used for the calculation.
      Returns:
      true if this layer should be drawn at the specified scale.
    • getName

      public String getName()
      Returns the name of the layer.
      Specified by:
      getName in interface ILayer
      Specified by:
      getName in interface LayerNode
      Returns:
      the name of the layer
    • getName

      public String getName(Locale locale)
      Returns the name of this layer for a specific locale.
      Specified by:
      getName in interface ILayer
      Parameters:
      locale -
      Returns:
      name.
    • isNamed

      public boolean isNamed(String value)
      Checks if the layer is named (including available translations, case insensitive) as the specified value.
      Parameters:
      value -
      Returns:
    • getDescription

      public String getDescription()
      Returns the description of the layer.
      Specified by:
      getDescription in interface ILayer
      Returns:
      the description of the layer
    • getDescription

      public String getDescription(Locale locale)
      Returns the description of this layer for a specific locale.
      Specified by:
      getDescription in interface ILayer
      Parameters:
      locale -
      Returns:
      description.
    • setDescription

      public void setDescription(String description)
      Sets the description string for the layer.
      Specified by:
      setDescription in interface ILayer
      Parameters:
      description - the description string
    • setDescription

      public void setDescription(String description, Locale locale)
      Sets the description of this layer for the specified Locale.
      Specified by:
      setDescription in interface ILayer
      Parameters:
      description - the new given description.
      locale - the locale for this description
    • getId

      public int getId()
      Returns the id of the layer.
      Specified by:
      getId in interface ILayer
      Specified by:
      getId in interface LayerNode
      Returns:
      the id of the layer
    • setId

      public void setId(int id)
      Sets the id of the layer.
      Specified by:
      setId in interface ILayer
      Parameters:
      id - the id of the layer
    • setVisible

      public void setVisible(boolean flag)
      Sets the visibility state of the layer. If a layer is invisible, it is not drawn in a view.
      Specified by:
      setVisible in interface ILayer
      Specified by:
      setVisible in interface LayerNode
      Parameters:
      flag - if true, the layer will be visible otherwise invisible
    • setVisible

      public void setVisible(boolean flag, boolean fireEvent)
      Sets the visibility state of the layer. If a layer is invisible, it is not drawn in a view.
      Parameters:
      flag - if true, the layer will be visible otherwise invisible
      fireEvent - if true, firePropertyChangedEvent and fireVisibilityEvent are fired
    • isVisible

      public boolean isVisible()
      Returns the current visibility state of the layer
      Specified by:
      isVisible in interface ILayer
      Specified by:
      isVisible in interface LayerNode
      Returns:
      true if the layer is visible, false otherwise
    • setQueriable

      @Deprecated public void setQueriable(boolean flag)
      Deprecated.
      As of release 4.0, the QUERIABLE property is not used anymore
      Sets the queriable state of the layer. Tools can check this state using the method isQueriable to determine if this layer should be processed.
      Parameters:
      flag - if true, the layer will be queriable otherwise not queriable
    • isQueriable

      @Deprecated public boolean isQueriable()
      Deprecated.
      As of release 4.0, the QUERIABLE property is not used anymore
      Returns the current queriable state of the layer.
      Returns:
      true if the layer is queriable, false otherwise
    • setSelectable

      public void setSelectable(boolean flag)
      Sets the selectable state of the layer. Selection tools can check this state using the method getSelectable to determine if this layer should be processed.
      Specified by:
      setSelectable in interface ILayer
      Parameters:
      flag - if true, the layer will be selectable otherwise not selectable
    • isSelectable

      public boolean isSelectable()
      Returns the current selectable state of the layer.
      Specified by:
      isSelectable in interface ILayer
      Returns:
      true if the layer is selectable, false otherwise
    • setLocal

      public void setLocal(boolean flag)
      Sets the local state of the layer. A local layer is generated on the client side and therefore should not generate data requests to the server.
      Specified by:
      setLocal in interface ILayer
      Parameters:
      flag - if true, the layer will be a local layer otherwise a normal layer
    • isLocal

      public boolean isLocal()
      Returns the current local state of the layer.
      Specified by:
      isLocal in interface ILayer
      Returns:
      true if the layer is local, false otherwise
    • setListed

      public void setListed(boolean listed)
      Sets the listed state of the layer. This flag can be used to determine if the layer should be hidden to the user in a list of layers.
      Specified by:
      setListed in interface ILayer
      Parameters:
      listed - if true, the layer will be a listed layer otherwise a normal layer
    • isListed

      public boolean isListed()
      Returns the current listed state of the layer.
      Specified by:
      isListed in interface ILayer
      Returns:
      true if the layer is a listed layer, false otherwise
    • setIncludeInContext

      public void setIncludeInContext(boolean includeInContext)
      Sets whether this layer should be included in contexts.
      Parameters:
      includeInContext - true defines that this layer should be included in contexts.
    • isIncludeInContext

      public boolean isIncludeInContext()
      Returns whether this layer should be included in contexts.
      Returns:
      true if this layer should be included in contexts.
    • drawGrid

      public boolean drawGrid()
      Returns the draw grid state.
      Returns:
      true is the layer grid is drawn
    • setDrawGrid

      public void setDrawGrid(boolean drawGrid)
      Sets the draw grid state.
      Parameters:
      drawGrid - if true, the grid will be drawn
    • isIndex

      public boolean isIndex()
      Returns whether this layer should be drawn in the client overview.
      Specified by:
      isIndex in interface ILayer
      Returns:
      whether this layer should be drawn in the client overview.
      See Also:
    • setIndex

      public void setIndex(boolean flag)
      Sets whether this layer should be drawn in the client overview.
      Specified by:
      setIndex in interface ILayer
      Parameters:
      flag - the new state of the property.
      See Also:
    • getStyle

      public Style getStyle()
      Returns the default style object associated with the layer.
      Note: If this layer has more than one style (depending on the zoom level), the lowest level style is returned.
      Returns:
      the default style of the layer
      See Also:
    • getStyle

      public Style getStyle(double scale)
      Returns the style object associated with the layer (used to draw elements of the layer).
      Parameters:
      scale - the scale of the current View.
      Returns:
      the default style of the layer.
      See Also:
    • getSelectionStyle

      public Style getSelectionStyle()
      Returns the default selection style object associated with the layer.
      Note: If this layer has more than one style (depending on the zoom level), the lowest level selection style is returned.
      Returns:
      the default selection style of the layer
      See Also:
    • getSelectionStyle

      public Style getSelectionStyle(double scale)
      Returns the selection style object associated with the layer for the specified scale.
      Parameters:
      scale - the scale of the current View.
      Returns:
      the selection style of the layer for the specified scale.
      See Also:
    • setStyle

      @Deprecated public void setStyle(Style style)
      Deprecated.
      since JMap 2.5
      Sets the default style for this layer. Fires a LayerStyleReplacedEvent.
      Parameters:
      style - the new default style for the layer
      See Also:
    • setStyleManager

      public void setStyleManager(StyleManager styleManager)
      Sets the StyleManager object to be used by the Layer.
      Specified by:
      setStyleManager in interface ILayer
      Parameters:
      styleManager - the style manager to be used.
    • getStyleManager

      public StyleManager getStyleManager()
      Returns the StyleManager instance used by the Layer.
      Specified by:
      getStyleManager in interface ILayer
      Returns:
      the StyleManager instance used by the Layer.
    • setStyle

      public void setStyle(Style style, double scale)
      Sets the default style at the specified scale for this layer. Fires a LayerStyleChangedEvent.
      Parameters:
      style - the new default style for the layer
      scale - the scale of the Style to replace.
      See Also:
    • fireStyleChangedEvent

      protected void fireStyleChangedEvent()
    • getRequestMode

      public abstract int getRequestMode()
      Returns the request mode for this layer. The request mode can be either by tile (REQUEST_MODE_TILE) or by random region (REQUEST_MODE_REGION). When using requests by tile, predimensionned tiles are exchanged between JMapServer and the client application. When using requests by region, random regions of data are exchanged depending on the region the user is viewing. Requests by tiles are generally more performant because they allow caching on the server and client sides. Requests by region are useful when data must always be up-to-date, as it will be requested each time from the spatial data source.
      Returns:
      the current request mode in use by this layer.
    • getExtent

      public abstract Rectangle getExtent()
      Returns the extent of the layer.
      Specified by:
      getExtent in interface ILayer
      Returns:
      the extent of the layer
    • drawGrid

      public abstract void drawGrid(GraphicsRef gr, K2DTransform t)
      Draws the tile grid for the layer.
      Parameters:
      gr - the Graphics wrapper object used to draw the grid
      t - the 2D transformation matrix used to draw the grid
    • draw

      @Deprecated public void draw(GraphicsRef gr, ViewState vs, OrientedRectangle region, double scale, int drawOptions)
      Draws layer contained in the specified region to the specified graphics object and applying the specified transformation.
      Parameters:
      gr - the graphics wrapper object to use.
      vs - the view state that provides context information to draw the layer.
      region - the world coordinate region to redraw.
      scale - the scale of the current View.
      drawOptions - draw options to use. Options can be retrieved with bitwise operations using LayerManager.DRAW_* constants.
      See Also:
    • draw

      public abstract void draw(GraphicsRef gr, ViewState vs, OrientedRectangle region, double scale, DrawParameters parameters)
      Draws layer contained in the specified region to the specified graphics object and applying the specified transformation.
      Parameters:
      gr - the graphics wrapper object to use.
      vs - the view state that provides context information to draw the layer.
      region - the world coordinate region to redraw.
      scale - the scale of the current View.
      parameters - draw parameters.
      Since:
      7.0
    • close

      public abstract void close()
      Frees all resources used by the layer.
    • dispatchEvent

      public void dispatchEvent(JMapEvent event)
      The dispatchEvent method is used to dispatch synchronously JMap events to all registered listeners. The main use of the JMapEventDispatcher interface is to dispatch events that were previously added to the JMap event queue.
      Note: only LayerEvent will be accepted by this method. Any other JMap event types will cause the layer to throw an exception.
      Specified by:
      dispatchEvent in interface JMapEventDispatcher
      Parameters:
      event - the event to be dispatched.
      Throws:
      IllegalArgumentException - will be thrown if the JMapEvent instance is no an instance of the LayerEvent class.
      See Also:
    • fireLayerReceivedDataEvent

      protected void fireLayerReceivedDataEvent(LayerReceivedDataEvent event, boolean sync)
    • fireRefreshRequestEvent

      protected void fireRefreshRequestEvent()
      Fires refresh request event so that the listener can handle the event properly
    • fireLayerPropertyChangedEvent

      protected void fireLayerPropertyChangedEvent(byte property)
    • fireLayerPropertyBeforeChangeEvent

      protected void fireLayerPropertyBeforeChangeEvent(byte property)
    • setMinimumVisibleScale

      public void setMinimumVisibleScale(double scale)
      Sets the minimum scale at which the layer should be visible.
      Specified by:
      setMinimumVisibleScale in interface ILayer
      Parameters:
      scale - the minimum scale limit for the layer
    • getMinimumVisibleScale

      public double getMinimumVisibleScale()
      Gets the minimum scale at which the layer should be visible.
      Specified by:
      getMinimumVisibleScale in interface ILayer
      Returns:
      the minimum scale limit for the layer
    • setMaximumVisibleScale

      public void setMaximumVisibleScale(double scale)
      Sets the maximum scale at which the layer should be visible.
      Specified by:
      setMaximumVisibleScale in interface ILayer
      Parameters:
      scale - the maximum scale limit for the layer
    • getMaximumVisibleScale

      public double getMaximumVisibleScale()
      Gets the maximum scale at which the layer should be visible.
      Specified by:
      getMaximumVisibleScale in interface ILayer
      Returns:
      the maximum scale limit for the layer
    • setName

      public void setName(String name)
      Sets the layer name.
      Specified by:
      setName in interface ILayer
      Parameters:
      name - new name for the layer
    • setName

      public void setName(String name, Locale locale)
      Sets the name of this layer for the specified Locale.
      Specified by:
      setName in interface ILayer
      Parameters:
      name - the new given name.
      locale - the locale for this name
    • getElementFactory

      public K2DElementFactory getElementFactory()
      Returns the K2DElementFactory configured for the layer.
      Specified by:
      getElementFactory in interface ILayer
      Returns:
      the current K2DElementFactory of the layer.
    • setElementFactory

      public void setElementFactory(K2DElementFactory elementFactory)
      Sets the K2DElementFactory to be used by this layer.
      Specified by:
      setElementFactory in interface ILayer
      Parameters:
      elementFactory - the K2DElementFactory to use.
    • getElementType

      public int getElementType()
      Returns the layer element type.
      Specified by:
      getElementType in interface ILayer
      Returns:
      the element type.
      See Also:
    • setElementType

      public void setElementType(int elementType)
      Sets the layer element type.
      Specified by:
      setElementType in interface ILayer
      Parameters:
      elementType - the element type to set.
      See Also:
    • getInfoReportConfig

      public JMapClientInfoReportConfig getInfoReportConfig()
      Return the information report configuration of the layer.
      Specified by:
      getInfoReportConfig in interface ILayer
      Returns:
      the layer information report configuration.
    • setInfoReportConfig

      public void setInfoReportConfig(JMapClientInfoReportConfig infoReportConfig)
      Sets the information report configuration of the layer.
      Specified by:
      setInfoReportConfig in interface ILayer
      Parameters:
      infoReportConfig - the infoReportConfig to set.
    • toString

      public String toString()
      Returns the name of the current layer.
      Overrides:
      toString in class Object
      Returns:
      the layer name.
    • compareTo

      public int compareTo(Layer layer)
      Compares this object with the specified layer for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

      It implements the compareTo from the Comparable interface If the object is null, the method returns -1

      Specified by:
      compareTo in interface Comparable<Layer>
      Parameters:
      layer - the layer to compare to.
      Returns:
      the corresponding integer value
      See Also:
    • clone

      public abstract Object clone()
      Description copied from interface: ILayer
      Returns a deep clone of the current LayerInfo instance.
      Specified by:
      clone in interface ILayer
      Specified by:
      clone in interface LayerNode
      Overrides:
      clone in class Object
      Returns:
      a clone of the current instance.
    • clone

      protected void clone(ILayer layer)
      Implementation of the clone method.
      Parameters:
      layer - the new layer instance.
    • update

      public void update(ILayer layer)
    • toLayerInfo

      public abstract LayerInfo toLayerInfo()
    • loadData

      public abstract void loadData(Geometry bounds, boolean sync)
      This method automatically loads the data intersecting with the specified geometry. For now, it is only implemented for VectorLayer, where it will load the intersecting tiles.
      Parameters:
      bounds - the geometry used to delimit the bounds
      sync - whether his method is synchronized
    • invalidate

      public void invalidate()
      Invalidates the cached data for vector and raster layers. Consequently, cached data will be discarded and reloaded at the next view drawing.
      Since 6.5, this method also affects layers loaded by tiles. Note that for tiled layers, calling the layer's invalidate method will not invalidate the local disk cache. To invalidate the local disk cache, the invalidateLayer method of the LayerManager must be called.
      Since:
      4.0.2
    • revalidate

      public void revalidate(K2DTransform tr)
      Revalidates cached data based on the specified affine transformation.
      Parameters:
      tr - the transformation to set. If null is specified, this method has the same effect as the invalidate() method.
      Since:
      4.0.2
    • setPrecisionModel

      public void setPrecisionModel(PrecisionModel precisionModel)
      Sets the precision model to use for geometrical operations.
      Parameters:
      precisionModel - the precision model to use.
      Since:
      4.0.3
    • getPrecisionModel

      public PrecisionModel getPrecisionModel()
      Returns the precision model to use for geometrical operations.
      Returns:
      the precision model to use for geometrical operations.
      Since:
      4.0.3
    • getMetadataUrl

      public String getMetadataUrl()
      Returns the metadata URL.
      Specified by:
      getMetadataUrl in interface ILayer
      Returns:
      metadata URL
      Since:
      4.0.3
    • setMetadataUrl

      public void setMetadataUrl(String metadataUrl)
      Sets the metadata URL.
      Specified by:
      setMetadataUrl in interface ILayer
      Parameters:
      metadataUrl - the metadata URL
      Since:
      4.0.3
    • isDynamic

      public boolean isDynamic()
      Specified by:
      isDynamic in interface ILayer
      Returns:
      true if the layer is dynamic and is automatically refreshed periodically.
    • getDynamicRefresh

      public int getDynamicRefresh()
      Gets the time at which a layer is automatically refreshed
      Specified by:
      getDynamicRefresh in interface ILayer
      Returns:
      the time in seconds
    • setDynamicRefresh

      public void setDynamicRefresh(int seconds)
      Sets the time at which a layer is automatically refreshed. A zero or negative value indicates that the layer is not dynamic.
      Specified by:
      setDynamicRefresh in interface ILayer
      Parameters:
      seconds -
    • removeTranslationsOtherThan

      public void removeTranslationsOtherThan(Locale[] locales)
      Description copied from class: LocalizedObject
      Removes any Locale from this object that are not in the specified locales. locales[0] should be the default language
      Overrides:
      removeTranslationsOtherThan in class LocalizedObject
      Parameters:
      locales -