/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.fudgemsg;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeBuilder;
import org.fudgemsg.mapping.FudgeBuilderFor;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
import com.opengamma.engine.view.compilation.CompiledViewDefinition;
import com.opengamma.engine.view.listener.ViewDefinitionCompiledCall;
/**
* Fudge message builder for {@link ViewDefinitionCompiledCall}
*/
@FudgeBuilderFor(ViewDefinitionCompiledCall.class)
public class ViewDefinitionCompiledCallFudgeBuilder implements FudgeBuilder<ViewDefinitionCompiledCall> {
private static final String COMPILED_VIEW_DEFINITION_FIELD = "compiledViewDefinition";
private static final String HAS_MARKET_DATA_PERMISSIONS_FIELD = "hasMarketDataPermissions";
@Override
public MutableFudgeMsg buildMessage(FudgeSerializer serializer, ViewDefinitionCompiledCall object) {
MutableFudgeMsg msg = serializer.newMessage();
serializer.addToMessage(msg, COMPILED_VIEW_DEFINITION_FIELD, null, object.getCompiledViewDefinition());
msg.add(HAS_MARKET_DATA_PERMISSIONS_FIELD, object.hasMarketDataPermissions());
return msg;
}
@Override
public ViewDefinitionCompiledCall buildObject(FudgeDeserializer deserializer, FudgeMsg msg) {
CompiledViewDefinition compiledViewDefinition = deserializer.fieldValueToObject(CompiledViewDefinition.class, msg.getByName(COMPILED_VIEW_DEFINITION_FIELD));
boolean hasMarketDataPermissions = msg.getBoolean(HAS_MARKET_DATA_PERMISSIONS_FIELD);
return new ViewDefinitionCompiledCall(compiledViewDefinition, hasMarketDataPermissions);
}
}