/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.cogda.msg;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeBuilder;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
/**
*
*/
public class CogdaLiveDataSnapshotRequestBuilder implements FudgeBuilder<CogdaLiveDataSnapshotRequestMessage> {
public static MutableFudgeMsg buildMessageStatic(FudgeSerializer serializer, CogdaLiveDataSnapshotRequestMessage request) {
MutableFudgeMsg msg = serializer.newMessage();
msg.add("MESSAGE_TYPE", CogdaMessageType.SNAPSHOT_REQUEST.name());
msg.add("correlationId", request.getCorrelationId());
CogdaLiveDataBuilderUtil.addExternalId(msg, request.getSubscriptionId(), request.getNormalizationScheme());
return msg;
}
@Override
public MutableFudgeMsg buildMessage(FudgeSerializer serializer, CogdaLiveDataSnapshotRequestMessage object) {
return buildMessageStatic(serializer, object);
}
public static CogdaLiveDataSnapshotRequestMessage buildObjectStatic(FudgeDeserializer deserializer, FudgeMsg message) {
CogdaLiveDataSnapshotRequestMessage request = new CogdaLiveDataSnapshotRequestMessage();
if (message.hasField("correlationId")) {
request.setCorrelationId(message.getLong("correlationId"));
} else {
request.setCorrelationId(-1L);
}
request.setSubscriptionId(CogdaLiveDataBuilderUtil.parseExternalId(message));
request.setNormalizationScheme(message.getString("normalizationScheme"));
return request;
}
@Override
public CogdaLiveDataSnapshotRequestMessage buildObject(FudgeDeserializer deserializer, FudgeMsg message) {
return buildObjectStatic(deserializer, message);
}
}