Class
caplin.trading.trademodel

TradeLeg

The TradeLeg class represents the exchange of a financial instrument and the resultant cash flow. One or more TradeLeg instances are contained within a single caplin.trading.trademodel.Trade instance — this provides the transactional wrapper around a complete trade.

Constructor Summary

Attributes Name and Description
caplin.trading.trademodel.TradeLeg(caplin.trading.trademodel.Trade oTrade, int nLegId)

Constructs an instance of caplin.trading.trademodel.TradeLeg.

Method Summary

Attributes Name and Description
void addDataFieldChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, String sFieldName, boolean bNotifyOfCurrentValue)

Adds a listener that is called when the specified field is updated.

void addDataFieldsChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, Array pFieldNames)

Adds a listener object that is called when any of the specified fields are updated.

void appendTraceData(Map mTraceData)

Append trace data into the internal data structure, so it can be sent to the server for analysis.

void dataFieldsUpdatedBySubscriber(caplin.trading.trademodel.DataHolder oFieldData)

This method is a callback method used by the subscriber to notify the leg when new data is received from the server.

String getAmount()

Returns the number of units of the underlying financial instrument to be traded.

String getAssetClass()

Returns the type of the financial instrument(s) to be traded — e.g FX, FI, EQUITY or COMMODITIES.

Variant getFieldValue(String sFieldName)

Returns the field value with the specified name.

String getInstrument()

Returns the financial instrument that is currently being traded on this leg.

caplin.trading.trademodel.Trade getTrade()

Returns the caplin.trading.trademodel.Trade object that this leg is a part of.

boolean isPermissioned()

Returns whether the user is permissioned to trade on this leg, based on the results of querying the caplin.services.security.PermissionService singleton.

void removeDataFieldChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, String sFieldName)

Removes the previously registered DataFieldChangedListener.

void removeDataFieldsChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, Array pFieldNames)

Removes a listener object from each of the passed fields.

void removeInstrumentDataSubscriber()

Removes and unsubscribes the leg from the previously registered caplin.trading.trademodel.InstrumentDataSubscriber.

void resume()

Resume a previously suspended indicative data subscription on the trade leg.

void setAmount(String sAmount)

Sets the number of units of the underlying financial instrument to be traded.

void setAssetClass(String sAssetClass)

Sets the type of the instrument to be traded — e.g FX, FI, EQUITY or COMMODITIES.

void setFieldValue(String sFieldName, Object oValue)

Sets the value within the trade leg.

void setInstrument(String sInstrument)

Sets the financial instrument that will be traded on this leg.

void setInstrumentDataSubscriber(caplin.trading.trademodel.InstrumentDataSubscriber oInstrumentDataSubscriber)

Sets the InstrumentDataSubscriber used to be obtain the prices for the instrument.

void stop()

Stops all operations on the trade leg.

void suspend()

Temporarily suspends the indicative data subscription on the trade leg.

Methods implemented from class caplin.services.security.PermissionServiceListener:
onAttributeChanged, onPermissionsChanged, onSinglePermissionChanged

Constructor Detail

caplin.trading.trademodel.TradeLeg(caplin.trading.trademodel.Trade oTrade, int nLegId)

Constructs an instance of caplin.trading.trademodel.TradeLeg.

Parameters
caplin.trading.trademodel.Trade oTrade The trade of which this leg is a part.
int nLegId The (one based) leg index of this trade leg.
Throws
caplin.core.Error
if oTrade is not a valid instance of caplin.trading.trademodel.Trade.

Method Detail

void addDataFieldChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, String sFieldName, boolean bNotifyOfCurrentValue)

Adds a listener that is called when the specified field is updated.

If it's more convenient it's also possible to add leg field listeners directly on the associated caplin.trading.trademodel.Trade instance, where the given field names must have the leg prefix prepended, e.g. 'L1_Amount' rather than 'Amount'.

N.b. If the bNotifyOfCurrentValue flag is set to true and there is a possibility that the field in question does not have a value at the point the listener is registered, then the first call to the caplin.trading.trademodel.DataFieldChangedListener#dataFieldChanged method may be with an undefined value.

Parameters
caplin.trading.trademodel.DataFieldChangedListener oListener The listener object to add.
String sFieldName The field to listen to.
boolean bNotifyOfCurrentValue (Optional) if set to true then the listener will be immediately notified of the fields current value, otherwise the listener will first be notified immediately the field changes value. If omitted it defaults to false.
See
#addDataFieldsChangedListener
#removeDataFieldChangedListener

void addDataFieldsChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, Array pFieldNames)

Adds a listener object that is called when any of the specified fields are updated.

Parameters
caplin.trading.trademodel.DataFieldChangedListener oListener The listener object to add.
Array pFieldNames The list of fields to send updates for.
See
#addDataFieldChangedListener
#removeDataFieldChangedListener

void appendTraceData(Map mTraceData)

Append trace data into the internal data structure, so it can be sent to the server for analysis. This does not fire any listeners or run any derivations.

Parameters
Map mTraceData Data to be traced.

void dataFieldsUpdatedBySubscriber(caplin.trading.trademodel.DataHolder oFieldData)

This method is a callback method used by the subscriber to notify the leg when new data is received from the server. The field names arriving from the server are not prefixed with the leg number.

Parameters
caplin.trading.trademodel.DataHolder oFieldData The new data from the server.

String getAmount()

Returns the number of units of the underlying financial instrument to be traded.

See
#setAmount

String getAssetClass()

Returns the type of the financial instrument(s) to be traded — e.g FX, FI, EQUITY or COMMODITIES.

See
#setAssetClass

Variant getFieldValue(String sFieldName)

Returns the field value with the specified name.

The field name follows the java beans naming convention. For any methods getXxx()/setXxx() there should be a field with the corresponding name, 'xxx'.

Parameters
String sFieldName The unique identifier for the field.

String getInstrument()

Returns the financial instrument that is currently being traded on this leg.

The format of the name is dependent on the asset class. Any processing for specific asset classes should be added to subclasses of TradeLeg. The instrument name is generally not understood by Liberator. Liberator requires a subject name that consists of a concatenation of asset class and instrument name.

See
#setInstrument

caplin.trading.trademodel.Trade getTrade()

Returns the caplin.trading.trademodel.Trade object that this leg is a part of.

boolean isPermissioned()

Returns whether the user is permissioned to trade on this leg, based on the results of querying the caplin.services.security.PermissionService singleton.

The permission service is queried based on the instrument that is being traded within the leg (retrieved via #getInstrument) and the the trading protocol being used to perform the trade (retrieved via caplin.trading.trademodel.Trade#getTradingProtocol).

void removeDataFieldChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, String sFieldName)

Removes the previously registered DataFieldChangedListener.

Parameters
caplin.trading.trademodel.DataFieldChangedListener oListener The listener to remove.
String sFieldName The data field that the listener should be removed from.
See
#addDataFieldChangedListener

void removeDataFieldsChangedListener(caplin.trading.trademodel.DataFieldChangedListener oListener, Array pFieldNames)

Removes a listener object from each of the passed fields.

Parameters
caplin.trading.trademodel.DataFieldChangedListener oListener The listener object to remove.
Array pFieldNames The list of fields to send updates for.
See
#addDataFieldChangedListener
#removeDataFieldChangedListener

void removeInstrumentDataSubscriber()

Removes and unsubscribes the leg from the previously registered caplin.trading.trademodel.InstrumentDataSubscriber.

See
#setInstrumentDataSubscriber

void resume()

Resume a previously suspended indicative data subscription on the trade leg. If there is no indicative data subscription, it does nothing. If this trade leg is not suspended it does nothing.

void setAmount(String sAmount)

Sets the number of units of the underlying financial instrument to be traded.

Parameters
String sAmount The number of units of the underlying financial instrument to be traded.
See
#getAmount

void setAssetClass(String sAssetClass)

Sets the type of the instrument to be traded — e.g FX, FI, EQUITY or COMMODITIES.

Parameters
String sAssetClass The asset class that is being traded.
See
#getAssetClass

void setFieldValue(String sFieldName, Object oValue)

Sets the value within the trade leg. Initial the trade instance is asked to validate the change. If all is well then the change is made within the leg and the data change listeners are notified (called in response to user input).

Parameters
String sFieldName The field name of the field that has changed.
Object oValue The new value of the field

void setInstrument(String sInstrument)

Sets the financial instrument that will be traded on this leg.

Parameters
String sInstrument The instrument to trade.
See
#getInstrument

void setInstrumentDataSubscriber(caplin.trading.trademodel.InstrumentDataSubscriber oInstrumentDataSubscriber)

Sets the InstrumentDataSubscriber used to be obtain the prices for the instrument.

For certain trade protocols (e.g. ESP) the prices are pre-populated. In this case, when the user initiates the trade the existing price is used.

Parameters
caplin.trading.trademodel.InstrumentDataSubscriber oInstrumentDataSubscriber The subscriber that will retrieve all instrument data for this trade leg.
See
#removeInstrumentDataSubscriber

void stop()

Stops all operations on the trade leg.

This method should be called when the trade leg is no longer needed as it releases any resources held by the trade leg. This method does not remove listeners that were registered using the #addDataFieldChangedListener or #addDataFieldsChangedListener methods.

Any data associated with the leg will be cleared when this method is called.

void suspend()

Temporarily suspends the indicative data subscription on the trade leg.

If there is no indicative data subscription, or if the trade leg is already suspended, calling this method has no effect.