1 37 38 package com.sun.j2ee.blueprints.activitysupplier.powebservice; 39 40 import java.util.*; 41 import java.text.*; 42 import java.io.*; 43 import javax.xml.parsers.*; 44 import org.w3c.dom.*; 45 import org.xml.sax.*; 46 import javax.xml.transform.*; 47 import javax.xml.transform.dom.*; 48 import javax.xml.transform.stream.*; 49 50 public class ActivityOrder implements Serializable { 51 52 protected String orderId; 53 protected ArrayList activities; 54 55 public ActivityOrder() {} 57 58 public String getOrderId() { 60 return orderId; 61 } 62 63 public ArrayList getActivities() { 64 return activities; 65 } 66 67 public void setOrderId(String id) { 69 this.orderId = id; 70 } 71 72 public void setActivities(ArrayList acts) { 73 this.activities = acts; 74 } 75 76 public static ActivityOrder fromXML(String actyPO) throws 77 InvalidOrderException{ 78 79 ActivityOrder order = null; 80 String opcPoId = null; 81 ArrayList acts = new ArrayList(); 82 try { 83 84 InputSource source = new InputSource(new StringReader(actyPO)); 85 DocumentBuilderFactory docBuilderFactory = 86 DocumentBuilderFactory.newInstance(); 87 docBuilderFactory.setNamespaceAware(true); 88 DocumentBuilder docBuilder = 89 docBuilderFactory.newDocumentBuilder(); 90 91 Document doc = docBuilder.parse(source); 93 Element elem = 94 (Element)doc.getDocumentElement().getFirstChild().getNextSibling(); 95 opcPoId = ((Text)(elem.getFirstChild())).getData(); 96 for (elem = getNextSibling(elem); elem != null; 97 elem = getNextSibling(elem)) { 98 ActivityDetails acty = new ActivityDetails(); 99 Element actyelem = (Element)elem.getFirstChild().getNextSibling(); 100 acty.setActivityId(((Text)(actyelem.getFirstChild())).getData()); 101 actyelem = getNextSibling(actyelem); 102 Date date = new SimpleDateFormat("MM-dd-yy").parse(((Text)(actyelem.getFirstChild())).getData()); 103 Calendar cal = Calendar.getInstance(); 104 cal.setTime(date); 105 acty.setStartDate(cal); 106 actyelem = getNextSibling(actyelem); 107 date = new SimpleDateFormat("MM-dd-yy").parse(((Text)(actyelem.getFirstChild())).getData()); 108 cal = Calendar.getInstance(); 109 cal.setTime(date); 110 acty.setEndDate(cal); 111 actyelem = getNextSibling(actyelem); 112 acty.setHeadCount(Integer.parseInt(((Text)(actyelem.getFirstChild())).getData())); 113 acts.add(acty); 114 } 115 } catch(Exception exe){ 116 exe.printStackTrace(System.err); 117 throw new InvalidOrderException("PO for Activity not valid : " + 118 exe.getMessage()); 119 } 120 if(acts.size() != 0) { 121 order = new ActivityOrder(); 122 order.setOrderId(opcPoId); 123 order.setActivities(acts); 124 } 125 return order; 126 } 127 128 public static Element getNextSibling(Element elem) { 129 for(Node sib=elem.getNextSibling(); sib!=null; 130 sib=sib.getNextSibling()){ 131 if(sib.getNodeType() == Node.ELEMENT_NODE){ 132 return (Element) sib; 133 } 134 } 135 return null; 136 } 137 } 138 | Popular Tags |