public class TransformerRecordImpl extends TransformerDataImpl implements TransformerRecord
Implementation of the TransformerRecord interface.
modCount
MAINTAIN_TIMESTAMP, NO_FLAGS, NO_PERSISTENCE, PUBLISH_TO_PEERS, SILENT_SEND, STORE_IN_CACHE
DS_FIELDS_SEPARATOR, F_NOCACHE
CONTAINER_TYPE, F_AUTH_UPDATE, F_AUTHGLOBAL, F_CHANGEDFIELDS, F_CLEAR_PERMISSIONS, F_CLEAR_TYPE2, F_CLEAR_TYPE3, F_CREATEOBJECT, F_CREATEPARENT, F_DELETE_PERMISSION, F_FILTER_TYPE2, F_FILTER_TYPE3, F_IMAGE, F_NONACTIVE, GENERIC_TYPE, NEWS_TYPE, PAGE_TYPE, PERMISSION_TYPE, RECORD_TYPE, STORY_TYPE, TYPE2_RECORD_TYPE, TYPE3_RECORD_TYPE, UNKNOWN_TYPE
Modifier | Constructor and Description |
---|---|
protected |
TransformerRecordImpl(long dsDataPointer)
Constructor is protected to prevent a TransformerRecord being
instantiated except by the DSFactory class.
|
protected |
TransformerRecordImpl(long dsDataPointer,
boolean freeDsDataPointer)
Constructor is protected to prevent a TransformerRecord being
instantiated except by the DSFactory class.
|
Modifier and Type | Method and Description |
---|---|
void |
addBinaryRecordData(String fieldName,
byte value)
Adds the byte value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
byte[] value)
Adds the byte array value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
double value)
Adds the double value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
float value)
Adds the float value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
int value)
Adds the integer value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
long value)
Adds the long value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
short value)
Adds the short value for the specified field name.
|
void |
addBinaryRecordData(String fieldName,
String value)
Adds the String value for the specified field name.
|
void |
addDataSeparator()
Adds a separator field, with field number
DSRecord.DS_FIELDS_SEPARATOR ,
to the TransformerRecord, allowing multiple type 2 and type 3 record
entries to be contributed in a single update. |
void |
addRecordData(String fieldName,
char value)
Adds the String representation of the character value for the
specified field name.
|
void |
addRecordData(String fieldName,
char[] value)
Adds the String representation of the character array for the
specified field name.
|
void |
addRecordData(String fieldName,
double value)
Adds the String representation of the double value for the
specified field name.
|
void |
addRecordData(String fieldName,
float value)
Adds the String representation of the float value for the
specified field name.
|
void |
addRecordData(String fieldName,
int value)
Adds the String representation of the integer value for the
specified field name.
|
void |
addRecordData(String fieldName,
long value)
Adds the String representation of the long value for the
specified field name.
|
void |
addRecordData(String fieldName,
String value)
Adds the String value for the specified field name.
|
DSField |
getFieldByName(String fieldName)
Gets the first occurrence of the field with the specified field
name.
|
DSField |
getFieldByName(String fieldName,
int occurrence)
Gets the specified occurrence of the field with the specified
field name.
|
boolean |
updateRecordData(String fieldName,
String value)
Sets the value of the first occurrence for the specified field
name.
|
boolean |
updateRecordData(String fieldName,
String value,
int occurrence)
Sets the value of the first occurrence for the specified field
name.
|
addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addData, addData, addData, addData, addData, addData, addData, addData, addString, addString, clearFields, count, elements, finalize, getDSDataPointer, getFieldByFieldNumber, getFieldByFieldNumber, getFlags, getKeys, getObjectType, getSequenceNumber, getSubject, getType, getValues, iterator, merge, removeField, send, send, sendDirect, sendToPeer, setFlags, setSubject, setType, setType, toBytes, updateData, updateData
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDSDataPointer, getObjectType, getSequenceNumber, merge, send, setType
addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addBinaryData, addData, addData, addData, addData, addData, addData, addData, addData, clearFields, count, elements, getFieldByFieldNumber, getFieldByFieldNumber, getFlags, getKeys, getSubject, getType, getValues, iterator, removeField, setFlags, setSubject, setType, updateData, updateData
send, sendDirect, sendToPeer
toBytes
protected TransformerRecordImpl(long dsDataPointer)
Constructor is protected to prevent a TransformerRecord being instantiated except by the DSFactory class.
A TransformerRecord created with this constructor will be responsible for freeing the memory for the underlying C ds_data struct.
This is equivalent to calling TransformerRecord(dsDataPointer, false).
dsDataPointer
- The pointer to the C ds_data struct that
holds the state information for the update.protected TransformerRecordImpl(long dsDataPointer, boolean freeDsDataPointer)
Constructor is protected to prevent a TransformerRecord being instantiated except by the DSFactory class.
dsDataPointer
- The pointer to the C ds_data struct that
holds the state information for the
update.freeDsDataPointer
- true if the TransformerRecord
is responsible for freeing up the memory
for the C ds_data struct, or false
if the Transformer core is responsible.public boolean updateRecordData(String fieldName, String value, int occurrence)
Sets the value of the first occurrence for the specified field name. The occurrence parameter is ignored in this version.
If there are three occurrences of the field Last, "75", "75.5" and "75.25", then calling updateRecordData("Last", "76", 2) will change occurrences to be "76", "75.5" and "75.25".
updateRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The new value for the field.occurrence
- The occurrence of the field to be updated. The
first field is occurrence 0, the next occurrence
1, and so on.NullPointerException
- If the value argument is null.public boolean updateRecordData(String fieldName, String value)
DSRecord
Sets the value of the first occurrence for the specified field name.
If there are three occurrences of the field Last, "75", "75.5" and "75.25", then calling updateRecordData("Last", "76") will change occurrences to be "76", "75.5" and "75.25".
This is equivalent to calling updateRecordData(fieldName, value, 0).
updateRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The new value for the field.NullPointerException
- If the value argument is null.public void addRecordData(String fieldName, String value)
DSRecord
Adds the String value for the specified field name.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.NullPointerException
- If the value argument is null.public void addRecordData(String fieldName, char value)
DSRecord
Adds the String representation of the character value for the specified field name.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addRecordData(String fieldName, char[] value)
DSRecord
Adds the String representation of the character array for the specified field name.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.NullPointerException
- If the value argument is null.public void addRecordData(String fieldName, double value)
DSRecord
Adds the String representation of the double value for the specified field name.
Warning: the underlying implementation will not guarantee any
accuracy beyond 12 decimal places. If greater precision is required,
the value should be formatted separately and added using the
DSRecord.addRecordData(String, String)
method.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addRecordData(String fieldName, float value)
DSRecord
Adds the String representation of the float value for the specified field name.
Warning: the underlying implementation will not guarantee any
accuracy beyond 6 decimal places. If greater precision is required,
the value should be formatted separately and added using the
DSRecord.addRecordData(String, String)
method.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addRecordData(String fieldName, int value)
DSRecord
Adds the String representation of the integer value for the specified field name.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addRecordData(String fieldName, long value)
DSRecord
Adds the String representation of the long value for the specified field name.
addRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, byte value)
DSRecord
Adds the byte value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The byte value to be stored in the field.public void addBinaryRecordData(String fieldName, short value)
DSRecord
Adds the short value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, int value)
DSRecord
Adds the integer value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, long value)
DSRecord
Adds the long value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, float value)
DSRecord
Adds the float value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, double value)
DSRecord
Adds the double value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.public void addBinaryRecordData(String fieldName, byte[] value)
DSRecord
Adds the byte array value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The array of bytes to be stored in the field.NullPointerException
- If the value argument is null.public void addBinaryRecordData(String fieldName, String value)
DSRecord
Adds the String value for the specified field name. This method Base64 encodes the value before storing it.
addBinaryRecordData
in interface DSRecord
fieldName
- The name of the field.value
- The value to be stored in the field.NullPointerException
- If the value argument is null.public DSField getFieldByName(String fieldName)
DSRecord
Gets the first occurrence of the field with the specified field name.
If there are three occurrences of the field Last, with values "75", "75.5" and "75.25", then calling getFieldByFieldName("Last") will return the field that contains the value "75".
This is equivalent to calling getFieldByFieldName(fieldName, 0).
getFieldByName
in interface DSRecord
fieldName
- The name of the field.public DSField getFieldByName(String fieldName, int occurrence)
DSRecord
Gets the specified occurrence of the field with the specified field name.
If there are three occurrences of the field Last, with values "75", "75.5" and "75.25", then calling getFieldByFieldName("Last", 2) will return the field that contains the value "75.25".
getFieldByName
in interface DSRecord
fieldName
- The name of the field.occurrence
- The occurrence of the field to be got. The
first field is occurrence 0, the next occurrence
1, and so on.public void addDataSeparator()
Adds a separator field, with field number DSRecord.DS_FIELDS_SEPARATOR
,
to the TransformerRecord, allowing multiple type 2 and type 3 record
entries to be contributed in a single update. Please see the examples
below for how this works.
Multiple type 2 entries contribution example
In this example, field "MktMkrId" is the type 2 index, whilst
"Bid" is a type 2 price field. This example will send two type 2
entries, one for Caplin (with a Bid of 100) and one for Another
Marker Maker (with a Bid of 102.5). Type 2 data can be retrieved
from the Transformer core's cache using DataCache.getType2Indices
and DataCache#getType2
.
Note: The type 2 index field must be the first field in an update or after a separator field.
DSRecord type2Record = DSFactory.createTransformerRecord("/TYPE2/EXAMPLE"); type2Record.addRecordData("MktMkrId", "Caplin"); type2Record.addRecordData("Bid", 100.0); type2Record.addDataSeparator(); type2Record.addRecordData("MktMkrId", "Another Market Maker"); type2Record.addRecordData("Bid", 102.5); type2Record.send();
Multiple type 3 entries contribution example
This example will send the values 205, 210, 212.5 and 215 for the
Last field, with the last one (215) interpreted as the most recent.
Type 3 data can be retrieved from the Transformer core's cache using
DataCache.getType3Field
.
DSRecord type3Record = DSFactory.createTransformerRecord("/TYPE3/EXAMPLE"); type3Record.addRecordData("Last", 205.0); type3Record.addDataSeparator(); type3Record.addRecordData("Last", 210.0); type3Record.addDataSeparator(); type3Record.addRecordData("Last", 212.5); type3Record.addDataSeparator(); type3Record.addRecordData("Last", 215.0); type3Record.send();
addDataSeparator
in interface DSRecord
Please send bug reports and comments to Caplin support