/* * ASIMessageHelper.java * * Created on February 27, 2003, 11:11 AM */ package cern.laser.source.alarmsysteminterface.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import cern.laser.source.alarmsysteminterface.FaultState; import cern.laser.source.alarmsysteminterface.impl.message.ASIMessage; import cern.laser.source.alarmsysteminterface.impl.message.FaultStates; /** * Helper class for marshaling/unmarshaling to/from ASIMessage instances and FaultState instances collection. * * @author fracalde */ public class ASIMessageHelper { /** Creates a new instance of ASIMessageHelper */ private ASIMessageHelper() { } /** * DOCUMENT ME! * * @param states DOCUMENT ME! * * @return DOCUMENT ME! */ public static ASIMessage marshal(Collection states) { if (states == null) { throw (new IllegalArgumentException("states collection is null")); } ASIMessage asi_message = new ASIMessage(); Iterator iterator = states.iterator(); FaultStates fault_states = new FaultStates(); while (iterator.hasNext()) { Object ref = iterator.next(); if (ref instanceof FaultState) { fault_states.addFaultState(FaultStateHelper.marshal((FaultState) ref)); } else { throw new IllegalArgumentException("collection does not contain FaultState instances"); } } asi_message.setFaultStates(fault_states); return asi_message; } /** * DOCUMENT ME! * * @param asiMessage * DOCUMENT ME! * * @return DOCUMENT ME! */ public static Collection<FaultState> unmarshal(ASIMessage asiMessage) { if (asiMessage == null) { throw (new IllegalArgumentException("ASI message is null")); } Collection<FaultState> ret = new ArrayList<FaultState>(); FaultStates generated_states = asiMessage.getFaultStates(); if (generated_states != null) { for (cern.laser.source.alarmsysteminterface.impl.message.FaultState generated_state : generated_states.getFaultState()) { ret.add(FaultStateHelper.unmarshal(generated_state)); } } return ret; } }