Class BlotterChannelImpl

java.lang.Object
com.caplin.datasource.blotter.impl.BlotterChannelImpl
All Implemented Interfaces:
com.caplin.container.impl.cache.CacheMissListener, BlotterChannel

@JMXBean public class BlotterChannelImpl extends Object implements BlotterChannel, com.caplin.container.impl.cache.CacheMissListener
  • Constructor Details

  • Method Details

    • sendBlotterItem

      public void sendBlotterItem(BlotterItem blotterItem)
      Description copied from interface: BlotterChannel

      Adds the BlotterItem to the internal cache and sends a container add so that this item is requested when the channel is subscribed to.

      If an item with the same unique id already exists in the internal cache then that item's fields will be updated with this one. This will then trigger an update for any users currently subscribed to this item.

      Specified by:
      sendBlotterItem in interface BlotterChannel
      Parameters:
      blotterItem - to send
    • sendBlotterItems

      public void sendBlotterItems(List<BlotterItem> newItems)
      Description copied from interface: BlotterChannel

      Adds BlotterItems to the internal cache and sends a container add so that these items are requested when the channel is subscribed to.

      If any items with the same unique id already exists in the internal cache then these items fields will be updated with these one. This will then trigger an update for any users currently subscribed to these items.

      Specified by:
      sendBlotterItems in interface BlotterChannel
      Parameters:
      newItems - to send
    • sendBlotterMapping

      public void sendBlotterMapping(String newSubject)
      Description copied from interface: BlotterChannel

      Sends a MappingMessage to the Liberator, requesting that the Liberator map this BlotterChannel instance's subject to the specified subject newSubject.

      Note: Liberator applies mapping rules configured by mapping messages after it applies mapping rules configured by object-map config items.

      This method can be used to provide a user with access to a shared group blotter via a general subject, such as /PRIVATE/FX/GROUPBLOTTER. In the BlotterApplicationListener.blotterChannelOpened(com.caplin.datasource.blotter.BlotterChannel) method for the general subject, determine which group the user is a member of and call BlotterChannel.sendBlotterMapping(java.lang.String), passing it the subject of the group's blotter.

      Specified by:
      sendBlotterMapping in interface BlotterChannel
      Parameters:
      newSubject - the subject to map this blotter's subject to
    • removeBlotterItem

      public void removeBlotterItem(String uniqueId)
      Description copied from interface: BlotterChannel

      Removes the BlotterItem from the internal cache and sends a container remove so that this item is no longer requested when the channel is subscribed to.

      Specified by:
      removeBlotterItem in interface BlotterChannel
      Parameters:
      uniqueId - of the item to remove
    • removeBlotterItems

      public void removeBlotterItems(List<String> uniqueIds)
      Description copied from interface: BlotterChannel

      Removes BlotterItems from the internal cache and sends a container remove so that these items are no longer requested when the channel is subscribed to.

      Specified by:
      removeBlotterItems in interface BlotterChannel
      Parameters:
      uniqueIds - of the items to remove
    • clear

      public void clear()
      Description copied from interface: BlotterChannel

      Clears all BlotterItems from the internal cache and sends a container clear so that these items are no longer requested when the channel is subscribed to.

      Specified by:
      clear in interface BlotterChannel
    • setBlotterChannelListener

      public void setBlotterChannelListener(BlotterChannelListener listener)
      Description copied from interface: BlotterChannel

      Sets a BlotterChannelListener on the channel.

      Specifically for the case where there is more than one Integration Adapter providing for the same channel subject.

      See BlotterConfiguration for how to configure for this eventuality.

      Specified by:
      setBlotterChannelListener in interface BlotterChannel
      Parameters:
      listener - to receive requests for items not already cached by the BlotterAPI
    • sendBlotterStatusStale

      public void sendBlotterStatusStale()
      Description copied from interface: BlotterChannel

      Sends a status stale on the channel.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterStatusStale in interface BlotterChannel
    • sendBlotterStatusOk

      public void sendBlotterStatusOk()
      Description copied from interface: BlotterChannel

      Sends a status ok on the channel.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterStatusOk in interface BlotterChannel
    • sendBlotterStatusStale

      public void sendBlotterStatusStale(String message)
      Description copied from interface: BlotterChannel

      Sends a status stale on the channel with custom message.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterStatusStale in interface BlotterChannel
    • sendBlotterStatusOk

      public void sendBlotterStatusOk(String message)
      Description copied from interface: BlotterChannel

      Sends a status ok on the channel with custom message.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterStatusOk in interface BlotterChannel
    • sendEmptyBlotter

      public void sendEmptyBlotter()
      Description copied from interface: BlotterChannel

      Sends an empty container on the channel.

      Invoke when a BlotterApplicationListener.blotterChannelOpened(com.caplin.datasource.blotter.BlotterChannel) callback is received and there are currently no BlotterItems to be added for the channel. I.e. A BlotterApplicationListener.blotterChannelOpened(com.caplin.datasource.blotter.BlotterChannel) for a historic trade data BlotterChannel for a user who has not yet traded would be serviced with this method.

      Note: This method is not required if the blotter Configuration option BlotterConfiguration.setAutoSendEmptyContainer() is turned on, in which case the API will send out an empty container for a blotter channel that was opened - unless it is materialized paths

      Specified by:
      sendEmptyBlotter in interface BlotterChannel
    • sendBlotterItemStatusStale

      public void sendBlotterItemStatusStale(String uniqueId)
      Description copied from interface: BlotterChannel

      Send status stale for a BlotterItem.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterItemStatusStale in interface BlotterChannel
      Parameters:
      uniqueId - of the message whose status is STALE
    • sendBlotterItemStatusOk

      public void sendBlotterItemStatusOk(String uniqueId)
      Description copied from interface: BlotterChannel

      Send status ok for a BlotterItem.

      Under normal circumstances this method is not used.

      Specified by:
      sendBlotterItemStatusOk in interface BlotterChannel
      Parameters:
      uniqueId - of the message whose status is OK
    • sendBlotterItemNotFound

      public void sendBlotterItemNotFound(String uniqueId)
      Description copied from interface: BlotterChannel

      Sends a not found for a BlotterItem.

      Specifically for the case where there is more than one Integration Adapter providing for the same channel subject.

      Sent in response to a BlotterChannelListener.onBlotterItemRequest(com.caplin.datasource.blotter.BlotterChannel, java.lang.String) when the item requested is not serviceable by your application.

      Specified by:
      sendBlotterItemNotFound in interface BlotterChannel
      Parameters:
      uniqueId - of item that cannot be serviced by your application.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • closeChannel

      @JMXBeanOperation(name="close-blotter-channel", description="Close blotter channel") public void closeChannel()
      Description copied from interface: BlotterChannel

      Closes the channel.

      Sends a Subject Not Found on the channel's subject to let subscribers know that it is no longer serviced.

      Specified by:
      closeChannel in interface BlotterChannel
    • getItemSubjects

      @JMXBeanAttribute(name="item-subjects", description="Item subjects") public ArrayList<String> getItemSubjects()
    • getItemCount

      @JMXBeanAttribute(name="item-count", description="Number of items associated with this blotter channel") public Long getItemCount()
    • getItemFields

      @JMXBeanOperation(name="get-item-fields", description="Get item fields by subject") public Map<String,String> getItemFields(@JMXBeanParameter(name="item-subject",description="Subject of item to get") String itemSubject)
    • getInstantiationTime

      @JMXBeanAttribute(name="instantiation-time", description="Time at which this blotter channel was instantiated") public Date getInstantiationTime()
    • getUsername

      @JMXBeanAttribute(name="username", description="Username of the blotter channel") public String getUsername()
      Description copied from interface: BlotterChannel

      Returns the username for the channel

      Specified by:
      getUsername in interface BlotterChannel
      Returns:
      username for the channel
    • getSubject

      @JMXBeanAttribute(name="subject", description="Subject of the blotter channel") public String getSubject()
      Description copied from interface: BlotterChannel

      Returns the subject for the channel.

      Specified by:
      getSubject in interface BlotterChannel
      Returns:
      subject for the channel
    • getKey

      @JMXBeanKey public String getKey()
    • onCacheMiss

      public void onCacheMiss(String subject)
      Specified by:
      onCacheMiss in interface com.caplin.container.impl.cache.CacheMissListener
    • getCount

      public int getCount()
    • getParameters

      public String getParameters()
      Description copied from interface: BlotterChannel

      Returns the parameters for the channel

      Specified by:
      getParameters in interface BlotterChannel
      Returns:
      parameters for the channel
    • isLastDiscard

      public boolean isLastDiscard(com.caplin.container.impl.sender.Sender sender)
    • getRecordSubscriptionsOnChannel

      public Set<String> getRecordSubscriptionsOnChannel()