/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.bbg.livedata;
import org.fudgemsg.FudgeField;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
/**
*
*/
public class LoggedReferenceData {
private static final String SECURITY_FIELD = "security";
private static final String FIELD_NAME_FIELD = "fieldName";
private static final String FIELD_VALUE_FIELD = "fieldValue";
private final String _security;
private final String _field;
private final Object _value;
/**
* @param security the security
* @param field the field
* @param value the field value
*/
public LoggedReferenceData(String security, String field, Object value) {
super();
_security = security;
_field = field;
_value = value;
}
public String getSecurity() {
return _security;
}
public String getField() {
return _field;
}
public Object getValue() {
return _value;
}
public FudgeMsg toFudgeMsg(final FudgeSerializer serializer) {
MutableFudgeMsg msg = serializer.newMessage();
msg.add(SECURITY_FIELD, getSecurity());
msg.add(FIELD_NAME_FIELD, getField());
serializer.addToMessage(msg, FIELD_VALUE_FIELD, null, getValue());
return msg;
}
public static LoggedReferenceData fromFudgeMsg(final FudgeDeserializer deserializer, final FudgeMsg message) {
FudgeField fieldValueField = message.getByName(FIELD_VALUE_FIELD);
Object fieldValue = fieldValueField != null ? deserializer.fieldValueToObject(fieldValueField) : null;
return new LoggedReferenceData(
message.getString(SECURITY_FIELD),
message.getString(FIELD_NAME_FIELD),
fieldValue);
}
}