/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.util.time;
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;
/**
* Fudge builder for {@code Tenor}.
* There is also a secondary type.
*/
@FudgeBuilderFor(Tenor.class)
public class TenorFudgeBuilder implements FudgeBuilder<Tenor> {
/** Field name. */
public static final String TENOR_FIELD_NAME = "tenor";
@Override
public MutableFudgeMsg buildMessage(FudgeSerializer serializer, Tenor object) {
final MutableFudgeMsg msg = serializer.newMessage();
msg.add(TENOR_FIELD_NAME, object.toFormattedString());
return msg;
}
@Override
public Tenor buildObject(FudgeDeserializer deserializer, FudgeMsg msg) {
final String tenorStr = msg.getString(TENOR_FIELD_NAME);
if (tenorStr == null) {
throw new IllegalArgumentException("Fudge message is not a Tenor - field 'tenor' is not present");
}
return Tenor.parse(tenorStr);
}
}