KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > j2ee > blueprints > airlinesupplier > pomessagebean > Invoice


1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistribution in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Sun Microsystems, Inc. or the names of
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * This software is provided "AS IS," without a warranty of any
21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32 *
33 * You acknowledge that Software is not designed, licensed or intended
34 * for use in the design, construction, operation or maintenance of
35 * any nuclear facility.
36 */

37
38 package com.sun.j2ee.blueprints.airlinesupplier.pomessagebean;
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 Invoice implements Serializable {
51
52     protected String JavaDoc invoiceId;
53     protected String JavaDoc opcPoId;
54     protected String JavaDoc supplierId;
55     protected String JavaDoc agentId;
56     protected Calendar depDate;
57     protected Calendar retDate;
58     protected String JavaDoc depFlightId;
59     protected String JavaDoc retFlightId;
60     protected int numPassengers;
61     protected String JavaDoc status;
62     protected String JavaDoc cancelPolicy;
63   
64     // Constructor
65
public Invoice() {}
66
67     public Invoice(String JavaDoc invoiceId, String JavaDoc opcPoId, String JavaDoc supplier,
68        String JavaDoc agentId, Calendar depDate, Calendar retDate,
69        String JavaDoc depFlightId, String JavaDoc retFlightId, int numPassengers,
70        String JavaDoc status, String JavaDoc cancelPolicy) {
71   this.invoiceId = invoiceId;
72   this.opcPoId = opcPoId;
73   this.supplierId = supplier;
74         this.agentId = agentId;
75         this.depDate = depDate;
76         this.retDate = retDate;
77         this.depFlightId = depFlightId;
78         this.retFlightId = retFlightId;
79         this.numPassengers = numPassengers;
80   this.status = status;
81         this.cancelPolicy = cancelPolicy;
82     }
83
84     // getter methods
85
public String JavaDoc getInvoiceId() {
86   return invoiceId;
87     }
88
89     public String JavaDoc getOpcPoId() {
90   return opcPoId;
91     }
92
93     public String JavaDoc getSupplierId() {
94   return supplierId;
95     }
96
97     public String JavaDoc getStatus() {
98   return status;
99     }
100
101     // setter methods
102
public void setInvoiceId(String JavaDoc invoiceId) {
103   this.invoiceId = invoiceId;
104     }
105
106     public void setOpcPoId(String JavaDoc id) {
107   this.opcPoId = id;
108     }
109
110     public void setSupplierId(String JavaDoc id) {
111   this.supplierId = id;
112     }
113
114     public void setStatus(String JavaDoc stat) {
115   this.status = stat;
116     }
117
118     //XML serialization/deserialization methods
119
public String JavaDoc toXML() throws ParserConfigurationException,
120                                  TransformerConfigurationException,
121                                  TransformerException,
122                                  UnsupportedEncodingException {
123   String JavaDoc inv = null;
124
125   //construct the DOM tree
126
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd E HH:mm.ss a");
127   DocumentBuilderFactory docBuilderFactory =
128     DocumentBuilderFactory.newInstance();
129   docBuilderFactory.setNamespaceAware(true);
130   DocumentBuilder docBuilder =
131     docBuilderFactory.newDocumentBuilder();
132   Document doc = docBuilder.newDocument();
133   Element invElem = doc.createElement("Invoice");
134   invElem.setAttribute("xmlns:xsi",
135            "http://www.w3.org/2001/XMLSchema-instance");
136   invElem.setAttribute("xsi:schemaLocation",
137         "http://java.sun.com/blueprints/ns/invoice " +
138         "http://java.sun.com/blueprints/schemas/invoice-airline.xsd");
139   invElem.setAttribute("xmlns",
140            "http://java.sun.com/blueprints/ns/invoice");
141   doc.appendChild(invElem);
142   Element elem = doc.createElement("InvoiceRef");
143   elem.appendChild(doc.createTextNode(invoiceId));
144   invElem.appendChild(elem);
145   elem = doc.createElement("OPCPoId");
146   elem.appendChild(doc.createTextNode(opcPoId));
147   invElem.appendChild(elem);
148   elem = doc.createElement("SupplierId");
149   elem.appendChild(doc.createTextNode(supplierId));
150   invElem.appendChild(elem);
151   elem = doc.createElement("AgentId");
152   elem.appendChild(doc.createTextNode(agentId));
153   invElem.appendChild(elem);
154   elem = doc.createElement("DPT-Flight-Date");
155   elem.appendChild(doc.createTextNode(df.format(depDate.getTime())));
156   invElem.appendChild(elem);
157   elem = doc.createElement("RTN-Flight-Date");
158   elem.appendChild(doc.createTextNode(df.format(retDate.getTime())));
159   invElem.appendChild(elem);
160   elem = doc.createElement("DPT-Flight-ID");
161   elem.appendChild(doc.createTextNode(depFlightId));
162   invElem.appendChild(elem);
163   elem = doc.createElement("RTN-Flight-ID");
164   elem.appendChild(doc.createTextNode(retFlightId));
165   invElem.appendChild(elem);
166   elem = doc.createElement("NUM-Passengers");
167   elem.appendChild(doc.createTextNode(numPassengers + ""));
168   invElem.appendChild(elem);
169   elem = doc.createElement("Status");
170   elem.appendChild(doc.createTextNode(status));
171   invElem.appendChild(elem);
172   elem = doc.createElement("Cancel-Policy");
173   elem.appendChild(doc.createTextNode(cancelPolicy));
174   invElem.appendChild(elem);
175                    
176   //process the source tree
177
ByteArrayOutputStream baStream = new ByteArrayOutputStream();
178   Result res = new StreamResult(baStream);
179   TransformerFactory transFactory = TransformerFactory.newInstance();
180   Transformer transformer = transFactory.newTransformer();
181   transformer.setOutputProperty(OutputKeys.METHOD, "xml");
182   transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
183   transformer.setOutputProperty(OutputKeys.INDENT, "yes");
184   transformer.transform(new DOMSource(doc), res);
185   inv = baStream.toString("UTF-8");
186   return inv;
187     }
188 }
189
Popular Tags