/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention;
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.core.convention.ConventionType;
/**
* Fudge builder for {@code ConventionType}.
*/
@FudgeBuilderFor(ConventionType.class)
public final class ConventionTypeFudgeBuilder implements FudgeBuilder<ConventionType> {
/** Field name. */
public static final String CONVENTION_TYPE_FIELD_NAME = "conventionType";
@Override
public MutableFudgeMsg buildMessage(FudgeSerializer serializer, ConventionType object) {
final MutableFudgeMsg msg = serializer.newMessage();
FudgeSerializer.addClassHeader(msg, ConventionType.class);
serializer.addToMessage(msg, CONVENTION_TYPE_FIELD_NAME, null, object.getName());
return msg;
}
@Override
public ConventionType buildObject(FudgeDeserializer deserializer, FudgeMsg msg) {
final String conventionTypeStr = msg.getString(CONVENTION_TYPE_FIELD_NAME);
if (conventionTypeStr == null) {
throw new IllegalArgumentException("Fudge message is not a ConventionType - field 'conventionType' is not present");
}
return ConventionType.of(conventionTypeStr);
}
}