import COM.activesw.api.client.BrokerEvent; import COM.activesw.api.client.BrokerException; import com.wm.data.IData; import com.wm.data.ValuesEmulator; /** * @author Hemanth Pallavajula */ public class CanonicalToBrokerEvent { public static BrokerEvent obtainLeafBrokerEvent(String canonicalFullName, IData canonical) { BrokerEvent brokerEvent6X = null; try { brokerEvent6X = fromIData(canonicalFullName, canonical); System.out.println("In LeafUtil6X, brokerEvent6X = " + brokerEvent6X); } catch (Throwable e) { e.printStackTrace(); } return brokerEvent6X; } private static BrokerEvent fromIData(String iDataName, IData idata) throws BrokerException { BrokerEvent brokerEvent6X = null; if (idata != null) { brokerEvent6X = new BrokerEvent(null, iDataName, null); String[] canKeys = ValuesEmulator.getKeys(idata); for (int keyIndex = 0; keyIndex < canKeys.length; keyIndex++) { String canKey = canKeys[keyIndex]; Object canValue = ValuesEmulator.get(idata, canKey); if (canValue instanceof IData) { BrokerEvent brokerEvent = fromIData(canKey, (IData) canValue); brokerEvent6X.setStructFieldFromEvent(canKey, brokerEvent); } else if (canValue instanceof IData[]) { IData[] idataValues = (IData[]) canValue; BrokerEvent[] childBrokerEvent = new BrokerEvent[idataValues.length]; for (int idataValueIndex = 0; idataValueIndex < idataValues.length; idataValueIndex++) { IData idataValue = idataValues[idataValueIndex]; childBrokerEvent[idataValueIndex] = fromIData(canKey + "_" + idataValueIndex + "_", idataValue); } brokerEvent6X.setStructSeqFieldFromEvents(canKey, 0, BrokerEvent.ENTIRE_SEQUENCE, BrokerEvent.AUTO_SIZE, childBrokerEvent); } else { brokerEvent6X.setStringField(canKey, canValue.toString()); } } } return brokerEvent6X; } }