Introduction

This document describes which types of objects are currently supported and used by Lucy's service mechanism out-of-the-box (see ILcyLucyEnv#addService(Object, int) and ILcyLucyEnv#removeService(Object) ). It is structured as follows:

Overview

The following list contains all objects which are registered by default as Lucy service, and describes whether:

When it is allowed to register multiple instances of a class, it is always possible to register your own instance and this instance will be used by Lucy. For example if you have your own ILcdGXYLayerFactory, you can register it to the Lucy back-end and it will be used when Lucy tries to create an ILcdGXYLayer for an ILcdModel (e.g. when using the File | Open action ).

  1. com.luciad.lucy.model.ILcyModelContentTypeProvider:
  2. com.luciad.model.ILcdModelFactory:
  3. com.luciad.lucy.model.TLcyModelDecoderHolder:
  4. com.luciad.lucy.model.TLcyModelEncoderHolder:
  5. com.luciad.lucy.gui.customizer.ILcyCustomizerPanelFactory:
  6. com.luciad.lucy.model.TLcyDataSourceHandlerHolder:
  7. com.luciad.lucy.map.ILcyGXYLayerTypeProvider:
  8. com.luciad.lucy.map.TLcyGXYLayerDecoderHolder:
  9. com.luciad.lucy.map.TLcyGXYLayerEncoderHolder:
  10. com.luciad.lucy.map.asynchronous.ILcyAsynchronousPaintHintProvider:
  11. com.luciad.lucy.datatransfer.ALcyLayerSelectionTransferHandler:
  12. com.luciad.view.gxy.ILcdGXYLayerFactory:
  13. com.luciad.lucy.map.ILcyLayerStyleProvider:
  14. com.luciad.lucy.gui.formatbar.ALcyFormatBarFactory:
  15. com.luciad.util.height.ILcdModelHeightProviderFactory:
  16. com.luciad.util.height.ILcdLayerHeightProviderFactory:
  17. com.luciad.lucy.model.ALcyDefaultModelDescriptorFactory:
  18. com.luciad.model.ILcdModelReferenceDecoder:
  19. com.luciad.lucy.realtime.ILcySimulatorModelFactory:
  20. javax.swing.event.HyperlinkListener:
  21. com.luciad.view.swing.ILcdBalloonContentProvider:
  22. com.luciad.io.ILcdInputStreamFactory:
  23. com.luciad.io.ILcdOutputStreamFactory:
  24. com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider
  25. com.luciad.model.ILcdModelReferenceParser
  26. com.luciad.util.measure.ILcdModelMeasureProviderFactory
  27. com.luciad.util.measure.ILcdLayerMeasureProviderFactory
  28. com.luciad.lucy.map.lightspeed.TLcyLspMapManager
  29. com.luciad.view.lightspeed.layer.ILspLayerFactory
  30. com.luciad.lucy.map.TLcyLayerStyleCodecHolder:
  31. com.luciad.lucy.map.lightspeed.ALcyLspStyleRepository:
  32. com.luciad.lucy.map.cameralinking.ALcyCameraLinkerFactory:
  33. com.luciad.format.s52.TLcdS52DisplaySettings:
  34. com.luciad.lucy.map.TLcyGenericMapManager
  35. com.luciad.ogc.ows.model.ILcdOWSTransport
  36. com.luciad.fusion.core.ALfnEnvironment
  37. com.luciad.fusion.client.TLfnClientFactory
  38. com.luciad.fusion.client.ALfnClientEnvironment
  39. com.luciad.fusion.tilestore.TLfnTileStoreProvider
  40. com.luciad.lucy.addons.tea.lineofsight.TLcyLOSManager
  41. com.luciad.lucy.addons.tea.shapevisibility.TLcyShapeVisibilityManager

Holder objects

Some of the service objects are associated to other objects. In order to maintain this association, those objects are registered to the back-end grouped into one so called 'holder object'. The table below lists the default holder objects and what they contain.

Note that the holder objects are public classes, so it is possible to register your own holder instance directly at the back-end. They will be picked up and used by Lucy.

Holder object Contains
com.luciad.lucy.model.TLcyDataSourceHandlerHolder
  • ALcyFileTypeDescriptor
  • ALcyDataSourceHandler
com.luciad.lucy.map.TLcyGXYLayerDecoderHolder
  • ALcyFileTypeDescriptor
  • ILcdGXYLayerDecoder
com.luciad.lucy.map.TLcyGXYLayerEncoderHolder
  • ALcyFileTypeDescriptor
  • ILcdGXYLayerEncoder
com.luciad.lucy.model.TLcyModelDecoderHolder
  • ALcyFileTypeDescriptor
  • ILcdModelDecoder
com.luciad.lucy.model.TLcyModelEncoderHolder
  • ALcyFileTypeDescriptor
  • ILcdModelEncoder
com.luciad.lucy.map.TLcyLayerStyleCodecHolder
  • ALcyFileTypeDescriptor
  • ILcyLayerStyleCodec

Composite implementations

For almost all service objects which are registered by default, there exists a composite implementation working on those registered service objects (see the Lucy developer guide for an in-depth explanation of those composite implementations). The available implementations are listed below:

Service object Composite implementation
com.luciad.lucy.model.ILcyModelContentTypeProvider com.luciad.lucy.model.TLcyCompositeModelContentTypeProvider
com.luciad.model.ILcdModelFactory com.luciad.lucy.model.TLcyCompositeModelFactory
com.luciad.lucy.model.TLcyModelDecoderHolder com.luciad.lucy.model.TLcyCompositeModelDecoder
com.luciad.lucy.model.TLcyModelEncoderHolder com.luciad.lucy.model.TLcyCompositeModelEncoder
com.luciad.lucy.gui.customizer.ILcyCustomizerPanelFactory com.luciad.lucy.gui.customizer.TLcyCompositeCustomizerPanelFactory
com.luciad.lucy.model.TLcyDataSourceHandlerHolder com.luciad.lucy.model.TLcyCompositeDataSourceHandler
com.luciad.lucy.map.ILcyGXYLayerTypeProvider com.luciad.lucy.map.TLcyCompositeGXYLayerTypeProvider
com.luciad.lucy.map.TLcyGXYLayerDecoderHolder com.luciad.lucy.map.TLcyCompositeGXYLayerDecoder
com.luciad.lucy.map.TLcyGXYLayerEncoderHolder com.luciad.lucy.map.TLcyCompositeGXYLayerEncoder
com.luciad.lucy.map.asynchronous.ILcyAsynchronousPaintHintProvider com.luciad.lucy.map.asynchronous.TLcyCompositeAsynchronousPaintHintProvider
com.luciad.lucy.datatransfer.ALcyLayerSelectionTransferHandler com.luciad.lucy.datatransfer.TLcyCompositeLayerSelectionTransferHandler
com.luciad.view.gxy.ILcdGXYLayerFactory com.luciad.lucy.map.TLcyCompositeGXYLayerFactory
com.luciad.lucy.map.ILcyLayerStyleProvider com.luciad.lucy.map.TLcyCompositeLayerStyleProvider
com.luciad.lucy.gui.formatbar.ALcyFormatBarFactory com.luciad.lucy.gui.formatbar.TLcyCompositeFormatBarFactory
com.luciad.util.height.ILcdModelHeightProviderFactory com.luciad.lucy.util.height.TLcyCompositeModelHeightProviderFactory
com.luciad.model.ILcdModelReferenceDecoder com.luciad.lucy.model.TLcyCompositeModelReferenceDecoder
com.luciad.lucy.realtime.ILcySimulatorModelFactory com.luciad.lucy.realtime.TLcyCompositeSimulatorModelFactory
javax.swing.event.HyperlinkListener com.luciad.lucy.util.hyperlink.TLcyCompositeHyperlinkListener
com.luciad.view.swing.ILcdBalloonContentProvider com.luciad.lucy.gui.balloon.TLcyCompositeBalloonContentProvider
com.luciad.io.ILcdInputStreamFactory com.luciad.lucy.io.TLcyCompositeInputStreamFactory
com.luciad.io.ILcdOutputStreamFactory com.luciad.lucy.io.TLcyCompositeOutputStreamFactory
com.luciad.lucy.map.labeling.ILcyGXYLabelPlacementHintProvider com.luciad.lucy.map.labeling.TLcyGXYCompositeLabelPlacementHintProvider
com.luciad.model.ILcdModelReferenceParser com.luciad.lucy.model.TLcyCompositeModelReferenceParser
com.luciad.util.measure.ILcdModelMeasureProviderFactory com.luciad.lucy.util.measure.TLcyCompositeModelMeasureProviderFactory
com.luciad.util.measure.ILcdLayerMeasureProviderFactory com.luciad.lucy.util.measure.TLcyCompositeLayerMeasureProviderFactory
com.luciad.view.lightspeed.layer.ILspLayerFactory com.luciad.lucy.map.lightspeed.TLcyLspCompositeLayerFactory
com.luciad.lucy.map.TLcyLayerStyleCodecHolder com.luciad.lucy.map.TLcyCompositeLayerStyleCodec
com.luciad.lucy.map.cameralinking.ALcyCameraLinkerFactory com.luciad.lucy.map.cameralinking.TLcyCompositeCameraLinkerFactory
com.luciad.ogc.ows.model.ILcdOWSTransport com.luciad.lucy.io.TLcyCompositeOWSTransport