/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master.historicaltimeseries.impl; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.fudgemsg.FudgeField; 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; /** * Builder for converting objects to/from Fudge messages. */ @FudgeBuilderFor(HistoricalTimeSeriesRating.class) public class HistoricalTimeSeriesRatingFudgeBuilder implements FudgeBuilder<HistoricalTimeSeriesRating> { /** Field name. */ public static final String RULES_FIELD_NAME = "rules"; @Override public MutableFudgeMsg buildMessage(final FudgeSerializer serializer, final HistoricalTimeSeriesRating object) { MutableFudgeMsg message = serializer.newMessage(); for (HistoricalTimeSeriesRatingRule rule : object.getRules()) { serializer.addToMessage(message, RULES_FIELD_NAME, null, rule); } return message; } @Override public HistoricalTimeSeriesRating buildObject(final FudgeDeserializer deserializer, final FudgeMsg message) { Collection<FudgeField> fields = message.getAllByName(RULES_FIELD_NAME); final List<HistoricalTimeSeriesRatingRule> rules = new ArrayList<HistoricalTimeSeriesRatingRule>(fields.size()); for (FudgeField field : fields) { HistoricalTimeSeriesRatingRule rule = deserializer.fudgeMsgToObject(HistoricalTimeSeriesRatingRule.class, (FudgeMsg) field.getValue()); rules.add(rule); } return HistoricalTimeSeriesRating.of(rules); } }