/** * parse the multiple SyncTransaction objects * * @param object * @return * @throws EwpException */ public static List<SyncTransaction> parseXML(XmlPullParser object) throws EwpException { try { List<SyncTransaction> syncTransactions = new ArrayList<SyncTransaction>(); int event = object.getEventType(); String text = null; SyncTransaction syncTransaction = null; SyncOp syncOp = null; while (event != XmlPullParser.END_DOCUMENT) { String name = object.getName(); switch (event) { case XmlPullParser.START_TAG: if ("SyncTransaction".equals(name)) { syncTransaction = new SyncTransaction(); syncTransactions.add(syncTransaction); } if ("SyncOp".equals(name)) { syncOp = new SyncOp(); syncTransaction.syncOpList.add(syncOp); } break; case XmlPullParser.TEXT: text = object.getText(); break; case XmlPullParser.END_TAG: if ("SyncTransactionId".equals(name)) { syncTransaction.syncTransactionId = text; } else if ("RowNumber".equals(name)) { syncTransaction.syncRowNumber = Integer.parseInt(text); } else if ("DeviceId".equals(name)) { syncOp.setDeviceId(text); } else if ("TableName".equals(name)) { syncOp.setTableName(text); } else if ("PKName".equals(name)) { syncOp.setPkName(text); } else if ("OpType".equals(name)) { syncOp.setOpType(text); } else if ("ColumnValue".equals(name)) { syncOp .getColumnValues() .put( object.getAttributeValue(null, "Name"), object.getAttributeValue(null, "Value")); } else if ("SyncTransactionId".equals(name)) { syncOp.setSyncTransactionId(text); } else if ("CreatedTime".equals(name)) { syncOp.setCreatedTime(Utils.dateFromString(text, true, true)); } break; default: break; } event = object.next(); } return syncTransactions; } catch (XmlPullParserException e) { EwpException ex = new EwpException(e); throw ex; } catch (IOException e) { EwpException ex = new EwpException(e); throw ex; } }