View Javadoc
1   package org.kuali.ole;
2   
3   import com.thoughtworks.xstream.XStream;
4   import org.kuali.ole.pojo.edi.*;
5   
6   import java.util.Arrays;
7   
8   
9   /**
10   * Created by IntelliJ IDEA.
11   * User: palanivel
12   * Date: 3/2/12
13   * Time: 8:11 PM
14   * To change this template use File | Settings | File Templates.
15   */
16  public class OLETranscationalRecordGenerator {
17  
18      public String toXml(EDIOrder ediOrder) {
19          EDIOrders ediOrders = new EDIOrders();
20          ediOrders.setOrders(Arrays.asList(ediOrder));
21          String xml = toXml(ediOrders);
22          return xml;
23      }
24  
25      public String toXml(EDIOrders ediOrders) {
26          XStream xStream = intXStream();
27          String order = xStream.toXML(ediOrders);
28          return order;
29      }
30  
31      public EDIOrders fromXml(String requestXML) {
32          XStream xStream = intXStream();
33          return (EDIOrders) xStream.fromXML(requestXML);
34      }
35  
36      public INVOrders fromInvoiceXml(String requestXML) {
37          XStream xStream = intInvoiceXStream();
38          return (INVOrders) xStream.fromXML(requestXML);
39      }
40  
41      public String toInvoiceXml(INVOrders invOrders) {
42          XStream xStream = intInvoiceXStream();
43          return xStream.toXML(invOrders);
44      }
45  
46      private XStream intXStream() {
47          XStream xStream = new XStream();
48          xStream.alias("orders", EDIOrders.class);
49          xStream.alias("order", EDIOrder.class);
50          xStream.addImplicitCollection(EDIOrders.class, "orders", EDIOrder.class);
51  
52          xStream.aliasField("sendersandreceiversidentification", EDIOrder.class, "senderAndReceiver");
53          xStream.aliasField("sendersandreceiversconstant", SenderAndReceiver.class, "sendersAndReceiversConstant");
54          xStream.aliasField("code", SendersAndReceiversConstant.class, "code");
55          xStream.aliasField("value", SendersAndReceiversConstant.class, "value");
56          xStream.aliasField("senderinformation", SenderAndReceiver.class, "senderInformation");
57          xStream.aliasField("senderid", SenderInformation.class, "senderId");
58          xStream.aliasField("senderidtype", SenderInformation.class, "senderIdType");
59          xStream.aliasField("receiverinformation", SenderAndReceiver.class, "receiverInformation");
60          xStream.aliasField("receiverid", ReceiverInformation.class, "receiverId");
61          xStream.aliasField("receiveridtype", ReceiverInformation.class, "receiverIdType");
62          xStream.aliasField("schedule", SenderAndReceiver.class, "schedule");
63          xStream.aliasField("preparationdate", Schedule.class, "preparationDate");
64          xStream.aliasField("preparationtime", Schedule.class, "preparationTime");
65          xStream.aliasField("interchangecontrolref", SenderAndReceiver.class, "interChangeControlReference");
66  
67          xStream.aliasField("messageheader", EDIOrder.class, "messageHeader");
68          xStream.aliasField("interchangecontrolref", MessageHeader.class, "interchangeControlReference");
69          xStream.aliasField("messagetypeinformation", MessageHeader.class, "messsageTypeInformation");
70          xStream.aliasField("messagetypeid", MesssageTypeInformation.class, "messageTypeId");
71          xStream.aliasField("constant1", MesssageTypeInformation.class, "constant1");
72          xStream.aliasField("constant2", MesssageTypeInformation.class, "constant2");
73          xStream.aliasField("constant3", MesssageTypeInformation.class, "constant3");
74          xStream.aliasField("constant4", MesssageTypeInformation.class, "constant4");
75  
76          xStream.aliasField("message", EDIOrder.class, "message");
77          xStream.aliasField("messagebeginning", Message.class, "messageBeginning");
78          xStream.aliasField("order", MessageBeginning.class, "messageBeginningOrder");
79          xStream.aliasField("interchangecontrolref", MessageBeginning.class, "messageBeginningInterchangeControlReference");
80          xStream.aliasField("codelistagency", MessageBeginning.class, "messageBeginningCodeListAgency");
81  
82          xStream.aliasField("messagecreationinfo", Message.class, "messageCreationInformation");
83          xStream.aliasField("details", MessageCreationInformation.class, "messageCreationInfoDetails");
84          xStream.aliasField("constant", MessageCreationInfoDetails.class, "messageCreationInfoConstant");
85          xStream.aliasField("date", MessageCreationInfoDetails.class, "messageCreationInfoDate");
86          xStream.aliasField("dateformat", MessageCreationInfoDetails.class, "messageCreationInfoDateFormat");
87  
88          xStream.aliasField("buyerpartyqualifier", Message.class, "buyerPartyQualifier");
89          xStream.aliasField("buyer", BuyerPartyQualifier.class, "buyer");
90          xStream.aliasField("buyerinfo", BuyerPartyQualifier.class, "buyerInformation");
91          xStream.aliasField("codedidentification", BuyerInformation.class, "buyerCodeIdentification");
92          xStream.aliasField("partyidentificationcode", BuyerInformation.class, "buyerPartyIdentificationCode");
93          xStream.aliasField("codelistagency", BuyerInformation.class, "buyerCodeListAgency");
94  
95          xStream.aliasField("reference", Message.class, "messageReference");
96          xStream.aliasField("partydetails", MessageReference.class, "partyDetails");
97          xStream.aliasField("additionalpartyidentification", PartyDetails.class, "additionalPartyIdentification");
98          xStream.aliasField("partyname", PartyDetails.class, "partyName");
99  
100         xStream.aliasField("supplierpartyqualifier", Message.class, "supplierPartyQualifier");
101         xStream.aliasField("supplier", SupplierPartyQualifier.class, "supplier");
102         xStream.aliasField("supplierinfo", SupplierPartyQualifier.class, "supplierInformation");
103         xStream.aliasField("codedidentification", SupplierInformation.class, "supplierCodeIdentification");
104         xStream.aliasField("partyidentificationcode", SupplierInformation.class, "supplierPartyIdentificationCode");
105         xStream.aliasField("codelistagency", SupplierInformation.class, "supplierCodeListAgency");
106 
107         xStream.aliasField("currencydetails", Message.class, "currencyDetails");
108         xStream.aliasField("supplierinfo", CurrencyDetails.class, "currencyDetailsSupplierInformation");
109         xStream.aliasField("defaultcurrency", CurrencyDetailsSupplierInformation.class, "defaultCurrency");
110         xStream.aliasField("currencytype", CurrencyDetailsSupplierInformation.class, "currencyType");
111         xStream.aliasField("ordercurrency", CurrencyDetailsSupplierInformation.class, "orderCurrency");
112 
113         xStream.alias("lineitemOrder", LineItemOrder.class);
114         xStream.alias("lineitem", LineItem.class);
115         xStream.alias("articlenumber", LineItemArticleNumber.class);
116         xStream.alias("productfunction", ProductFunction.class);
117         xStream.alias("articlenumber", ProductArticleNumber.class);
118         xStream.alias("itemdescription", ItemDescription.class);
119         xStream.alias("quantityinformation", QuantityInformation.class);
120         xStream.alias("quantity", Qunatity.class);
121         xStream.alias("priceinformation", PriceInformation.class);
122         xStream.alias("price", ItemPrice.class);
123         xStream.alias("referenceinformation", BuyerReferenceInformation.class);
124         xStream.alias("reference", BuyerLineItemReference.class);
125         xStream.alias("suppliersreferenceinformation", SupplierReferenceInformation.class);
126         xStream.alias("suppliersreference", SupplierLineItemReference.class);
127         xStream.alias("fundnumberreference", FundNumberReference.class);
128         xStream.alias("buyers", BuyersFundNumberReference.class);
129         xStream.alias("note", FreeTextNotes.class);
130         xStream.alias("transportstagequalifier", TransportStageQualifier.class);
131 
132         xStream.addImplicitCollection(EDIOrder.class, "lineItemOrder", LineItemOrder.class);
133         xStream.addImplicitCollection(LineItemOrder.class, "lineItem", LineItem.class);
134 
135         xStream.aliasField("sequencenumber", LineItem.class, "sequenceNumber");
136         xStream.aliasField("itemnumberid", LineItem.class, "itemNumberId");
137 
138         xStream.addImplicitCollection(LineItem.class, "lineItemArticleNumber", LineItemArticleNumber.class);
139 
140         xStream.aliasField("isbn", LineItemArticleNumber.class, "lineItemIsbn");
141         xStream.aliasField("itemnumbertype", LineItemArticleNumber.class, "lineItemNumberType");
142 
143         xStream.addImplicitCollection(LineItemOrder.class, "productFunction", ProductFunction.class);
144 
145         xStream.aliasField("productid", ProductFunction.class, "productId");
146 
147         xStream.addImplicitCollection(ProductFunction.class, "productArticleNumber", ProductArticleNumber.class);
148 
149         xStream.aliasField("isbn", ProductArticleNumber.class, "productIsbn");
150         xStream.aliasField("itemnumbertype", ProductArticleNumber.class, "productItemNumberType");
151 
152         xStream.addImplicitCollection(LineItemOrder.class, "itemDescriptionList", ItemDescription.class);
153 
154         xStream.aliasField("text", ItemDescription.class, "text");
155         xStream.aliasField("itemcharacteristiccode", ItemDescription.class, "itemCharacteristicCode");
156         xStream.aliasField("data", ItemDescription.class, "data");
157 
158         xStream.addImplicitCollection(LineItemOrder.class, "quantityInformation", QuantityInformation.class);
159         xStream.addImplicitCollection(QuantityInformation.class, "qunatity", Qunatity.class);
160 
161         xStream.aliasField("constant", Qunatity.class, "quantityConstant");
162         xStream.aliasField("quantity", Qunatity.class, "quantity");
163 
164         xStream.addImplicitCollection(LineItemOrder.class, "priceInformation", PriceInformation.class);
165         xStream.addImplicitCollection(PriceInformation.class, "itemPrice", ItemPrice.class);
166 
167         xStream.aliasField("grossprice", ItemPrice.class, "grossPrice");
168         xStream.aliasField("price", ItemPrice.class, "price");
169 
170         xStream.addImplicitCollection(LineItemOrder.class, "buyerReferenceInformation", BuyerReferenceInformation.class);
171         xStream.addImplicitCollection(BuyerReferenceInformation.class, "buyerLineItemReference", BuyerLineItemReference.class);
172 
173         xStream.aliasField("buyersorderline", BuyerLineItemReference.class, "buyersOrderLine");
174         xStream.aliasField("orderlinenumber", BuyerLineItemReference.class, "orderLineNumber");
175 
176 
177         xStream.addImplicitCollection(LineItemOrder.class, "supplierReferenceInformation", SupplierReferenceInformation.class);
178         xStream.addImplicitCollection(SupplierReferenceInformation.class, "supplierLineItemReference", SupplierLineItemReference.class);
179 
180         xStream.aliasField("suppliersorderline", SupplierLineItemReference.class, "suppliersOrderLine");
181         xStream.aliasField("vendorreferencenumber", SupplierLineItemReference.class, "vendorReferenceNumber");
182 
183 
184         xStream.addImplicitCollection(LineItemOrder.class, "fundNumberReference", FundNumberReference.class);
185         xStream.addImplicitCollection(FundNumberReference.class, "buyersFundNumberReference", BuyersFundNumberReference.class);
186 
187         xStream.aliasField("buyersfundnumber", BuyersFundNumberReference.class, "buyersFundNumber");
188         xStream.aliasField("budgetnumber", BuyersFundNumberReference.class, "budgetNumber");
189 
190         xStream.addImplicitCollection(LineItemOrder.class, "note", FreeTextNotes.class);
191 
192         xStream.aliasField("notelineitem", FreeTextNotes.class, "noteLineItem");
193         xStream.aliasField("noteempty1", FreeTextNotes.class, "noteempty1");
194         xStream.aliasField("noteempty2", FreeTextNotes.class, "noteempty2");
195         xStream.aliasField("noteempty3", FreeTextNotes.class, "noteempty3");
196 
197 
198         xStream.addImplicitCollection(LineItemOrder.class, "transportStageQualifier", TransportStageQualifier.class);
199 
200         xStream.aliasField("transportstagequalifierconstant", TransportStageQualifier.class, "transportStageConstant");
201         xStream.aliasField("surfacemail", TransportStageQualifier.class, "surfaceMail");
202 
203 
204         xStream.aliasField("summary", LineItemOrder.class, "supplierReferenceInformation");
205         xStream.aliasField("summarysection", Summary.class, "summarySection");
206         xStream.aliasField("separatorinfo", SummarySection.class, "separatorInformation");
207 
208         xStream.alias("controlinfomation", ControlInfomation.class);
209         xStream.alias("control", Control.class);
210 
211         xStream.addImplicitCollection(Summary.class, "controlInfomation", ControlInfomation.class);
212         xStream.addImplicitCollection(ControlInfomation.class, "control", Control.class);
213 
214         xStream.aliasField("controlqualifier", Control.class, "controlQualifier");
215         xStream.aliasField("totalqtysegments", Control.class, "totalQuantitySegments");
216 
217 
218         xStream.aliasField("unt", Summary.class, "untSummary");
219         xStream.aliasField("messagesegmentsnumber", UNTSummary.class, "segmentNumber");
220         xStream.aliasField("linsegmentstotal", UNTSummary.class, "linSegmentTotal");
221         xStream.addImplicitCollection(EDIOrders.class, "orders");
222         return xStream;
223     }
224 
225 
226     private XStream intInvoiceXStream() {
227         XStream xStream = new XStream();
228         xStream.alias("orders", INVOrders.class);
229 
230         xStream.aliasField("sendersandreceiversidentification", INVOrders.class, "senderAndReceiver");
231         xStream.aliasField("sendersandreceiversconstant", SenderAndReceiver.class, "sendersAndReceiversConstant");
232         xStream.aliasField("code", SendersAndReceiversConstant.class, "code");
233         xStream.aliasField("value", SendersAndReceiversConstant.class, "value");
234         xStream.aliasField("senderinformation", SenderAndReceiver.class, "senderInformation");
235         xStream.aliasField("senderid", SenderInformation.class, "senderId");
236         xStream.aliasField("senderidtype", SenderInformation.class, "senderIdType");
237         xStream.aliasField("receiverinformation", SenderAndReceiver.class, "receiverInformation");
238         xStream.aliasField("receiverid", ReceiverInformation.class, "receiverId");
239         xStream.aliasField("receiveridtype", ReceiverInformation.class, "receiverIdType");
240         xStream.aliasField("schedule", SenderAndReceiver.class, "schedule");
241         xStream.aliasField("preparationdate", Schedule.class, "preparationDate");
242         xStream.aliasField("preparationtime", Schedule.class, "preparationTime");
243         xStream.aliasField("interchangecontrolref", SenderAndReceiver.class, "interChangeControlReference");
244         xStream.aliasField("field6", SenderAndReceiver.class, "field6");
245         xStream.aliasField("field7", SenderAndReceiver.class, "field7");
246         xStream.aliasField("field8", SenderAndReceiver.class, "field8");
247         xStream.aliasField("field9", SenderAndReceiver.class, "field9");
248         xStream.aliasField("field10", SenderAndReceiver.class, "field10");
249         xStream.aliasField("field11", SenderAndReceiver.class, "field11");
250 
251         xStream.alias("order", INVOrder.class);
252         xStream.addImplicitCollection(INVOrders.class, "invOrder", INVOrder.class);
253 
254 
255         xStream.aliasField("messageheader", INVOrder.class, "messageHeader");
256         xStream.aliasField("interchangecontrolref", MessageHeader.class, "interchangeControlReference");
257         xStream.aliasField("messagetypeinformation", MessageHeader.class, "messsageTypeInformation");
258         xStream.aliasField("messagetypeid", MesssageTypeInformation.class, "messageTypeId");
259         xStream.aliasField("constant1", MesssageTypeInformation.class, "constant1");
260         xStream.aliasField("constant2", MesssageTypeInformation.class, "constant2");
261         xStream.aliasField("constant3", MesssageTypeInformation.class, "constant3");
262         xStream.aliasField("constant4", MesssageTypeInformation.class, "constant4");
263 
264         xStream.aliasField("message", INVOrder.class, "message");
265         xStream.aliasField("messagebeginning", InvoiceMessage.class, "messageBeginning");
266         xStream.aliasField("order", MessageBeginning.class, "messageBeginningOrder");
267         xStream.aliasField("interchangecontrolref", MessageBeginning.class, "messageBeginningInterchangeControlReference");
268         xStream.aliasField("codelistagency", MessageBeginning.class, "messageBeginningCodeListAgency");
269 
270         xStream.aliasField("messagecreationinfo", InvoiceMessage.class, "messageCreationInformation");
271         xStream.aliasField("details", MessageCreationInformation.class, "messageCreationInfoDetails");
272         xStream.aliasField("constant", MessageCreationInfoDetails.class, "messageCreationInfoConstant");
273         xStream.aliasField("date", MessageCreationInfoDetails.class, "messageCreationInfoDate");
274         xStream.aliasField("dateformat", MessageCreationInfoDetails.class, "messageCreationInfoDateFormat");
275 
276         xStream.aliasField("purchaseordernumber", InvoiceMessage.class, "purchaseOrderQualifier");
277         xStream.aliasField("purchaseorderreference", PurchaseOrderQualifier.class, "purchaseOrderReference");
278         xStream.aliasField("purchaseorderline", PurchaseOrderReference.class, "purchaseOrderLine");
279         xStream.aliasField("purchaseordernumber", PurchaseOrderReference.class, "purchaseOrderNumber");
280 
281         xStream.alias("partyqualifier", PartyQualifier.class);
282         xStream.alias("supplierpartyname", SupplierPartyName.class);
283         xStream.addImplicitCollection(InvoiceMessage.class, "partyQualifier", PartyQualifier.class);
284 
285         xStream.aliasField("partyqualifier", InvoiceMessage.class, "partyQualifier");
286         xStream.aliasField("partycode", PartyQualifier.class, "partyCode");
287         xStream.aliasField("partyinfo", PartyQualifier.class, "partyInformation");
288         xStream.aliasField("codedidentification", PartyInformation.class, "codeIdentification");
289         xStream.aliasField("partyidentificationcode", PartyInformation.class, "partyIdentificationCode");
290         xStream.aliasField("codelistagency", PartyInformation.class, "codeListAgency");
291         xStream.aliasField("nameandaddress", PartyQualifier.class, "nameAndAddress");
292 
293         xStream.aliasField("supplierpartyname", PartyQualifier.class, "supplierPartyName");
294 
295         xStream.aliasField("partyname1", SupplierPartyName.class, "partyName1");
296         xStream.aliasField("partyname2", SupplierPartyName.class, "partyName2");
297         xStream.aliasField("partyname3", SupplierPartyName.class, "partyName3");
298         xStream.aliasField("partyname4", SupplierPartyName.class, "partyName4");
299         xStream.aliasField("partyname5", SupplierPartyName.class, "partyName5");
300 
301 
302         xStream.aliasField("partystreetname", PartyQualifier.class, "partyStreetName");
303 
304         xStream.aliasField("streetname1", PartyStreetName.class, "partyStreetName1");
305         xStream.aliasField("streetname2", PartyStreetName.class, "partyStreetName2");
306         xStream.aliasField("streetname3", PartyStreetName.class, "partyStreetName3");
307 
308         xStream.aliasField("partycityname", PartyQualifier.class, "partyCityName");
309         xStream.aliasField("partycountrysubentity", PartyQualifier.class, "partyCountrySubEntity");
310         xStream.aliasField("partypostalcode", PartyQualifier.class, "partyPostalCode");
311         xStream.aliasField("partycountrycode", PartyQualifier.class, "partyCountryCode");
312 
313         xStream.aliasField("supplieradditionalpartyidentifier", InvoiceMessage.class, "supplierAdditionalPartyIdentifier");
314         xStream.aliasField("supplierreference", SupplierAdditionalPartyIdentifier.class, "supplierIdentifier");
315         xStream.aliasField("referencequalifier", SupplierIdentifier.class, "referenceQualifier");
316         xStream.aliasField("referencenumber", SupplierIdentifier.class, "referenceNumber");
317 
318 
319         xStream.alias("buyerpartyqualifier", BuyerQualifier.class);
320         xStream.alias("buyername", BuyerPartyName.class);
321         xStream.addImplicitCollection(InvoiceMessage.class, "buyerPartyQualifier", BuyerQualifier.class);
322 
323         xStream.aliasField("buyerpartyqualifier", InvoiceMessage.class, "buyerPartyQualifier");
324         xStream.aliasField("buyercode", BuyerQualifier.class, "buyerCode");
325         xStream.aliasField("buyerinfo", BuyerQualifier.class, "buyerInformation");
326         xStream.aliasField("buyercodedidentification", PartyInformation.class, "codeIdentification");
327         xStream.aliasField("buyeridentificationcode", PartyInformation.class, "partyIdentificationCode");
328         xStream.aliasField("buyercodelistagency", PartyInformation.class, "codeListAgency");
329         xStream.aliasField("nameandaddress", BuyerQualifier.class, "nameAndAddress");
330 
331         xStream.aliasField("buyername", BuyerQualifier.class, "buyerName");
332         xStream.aliasField("buyername1", BuyerPartyName.class, "partyName1");
333         xStream.aliasField("buyername2", BuyerPartyName.class, "partyName2");
334         xStream.aliasField("buyername3", BuyerPartyName.class, "partyName3");
335         xStream.aliasField("buyername4", BuyerPartyName.class, "partyName4");
336         xStream.aliasField("buyername5", BuyerPartyName.class, "partyName5");
337 
338         xStream.aliasField("buyerstreetname", BuyerQualifier.class, "buyerStreetName");
339         xStream.aliasField("buyerstreetname1", PartyStreetName.class, "partyStreetName1");
340         xStream.aliasField("buyerstreetname2", PartyStreetName.class, "partyStreetName2");
341         xStream.aliasField("buyerstreetname3", PartyStreetName.class, "partyStreetName3");
342 
343         xStream.aliasField("buyercityname", BuyerQualifier.class, "buyerCityName");
344         xStream.aliasField("buyercountrysubentity", BuyerQualifier.class, "buyerCountrySubEntity");
345         xStream.aliasField("buyerpostalcode", BuyerQualifier.class, "buyerPostalCode");
346         xStream.aliasField("buyercountrycode", BuyerQualifier.class, "buyerCountryCode");
347 
348 
349         xStream.aliasField("buyeradditionalpartyidentifier", InvoiceMessage.class, "buyerAdditionalPartyIdentifier");
350         xStream.aliasField("buyerreference", BuyerAdditionalPartyIdentifier.class, "buyerIdentifier");
351         xStream.aliasField("buyerreferencequalifier", BuyerIdentifier.class, "buyerReferenceQualifier");
352         xStream.aliasField("buyerreferencenumber", BuyerIdentifier.class, "buyerReferenceNumber");
353 
354 
355         xStream.aliasField("reference", InvoiceMessage.class, "messageReference");
356         xStream.aliasField("partydetails", MessageReference.class, "partyDetails");
357         xStream.aliasField("additionalpartyidentification", PartyDetails.class, "additionalPartyIdentification");
358         xStream.aliasField("partyname", PartyDetails.class, "partyName");
359 
360         xStream.aliasField("currencydetails", InvoiceMessage.class, "currencyDetails");
361         xStream.aliasField("supplierinfo", CurrencyDetails.class, "currencyDetailsSupplierInformation");
362         xStream.aliasField("defaultcurrency", CurrencyDetailsSupplierInformation.class, "defaultCurrency");
363         xStream.aliasField("currencytype", CurrencyDetailsSupplierInformation.class, "currencyType");
364         xStream.aliasField("ordercurrency", CurrencyDetailsSupplierInformation.class, "orderCurrency");
365 
366         xStream.aliasField("allowanceorcharge", InvoiceMessage.class, "allowanceOrCharge");
367         xStream.aliasField("allowanceorchargequalifier", AllowanceOrCharge.class, "allowanceOrChargeQualifier");
368         xStream.aliasField("freetext", AllowanceOrCharge.class, "freeText");
369         xStream.aliasField("settlement", AllowanceOrCharge.class, "settlement");
370         xStream.aliasField("calculationsequenceindicator", AllowanceOrCharge.class, "calculationSequenceIndicator");
371         xStream.aliasField("specialserviceidentification", AllowanceOrCharge.class, "specialServiceIdentification");
372         xStream.aliasField("specialservicecode", SpecialServiceIdentification.class, "specialServiceCode");
373         xStream.aliasField("codelistqualifier", SpecialServiceIdentification.class, "codeListQualifier");
374         xStream.aliasField("codelistqualifieragency", SpecialServiceIdentification.class, "codeListQualifierAgency");
375         xStream.aliasField("specialservice", SpecialServiceIdentification.class, "specialService");
376 
377         xStream.aliasField("monetary", InvoiceMessage.class, "monetary");
378         xStream.aliasField("monetaryinfo", Monetary.class, "monetaryInformation");
379         xStream.aliasField("monetaryamounttype", MonetaryInformation.class, "amountType");
380         xStream.aliasField("monetaryamount", MonetaryInformation.class, "amount");
381 
382 
383         xStream.alias("lineitemOrder", LineItemOrder.class);
384         xStream.alias("lineitem", LineItem.class);
385         xStream.alias("linearticlenumber", LineItemArticleNumber.class);
386         xStream.alias("productfunction", ProductFunction.class);
387         xStream.alias("articlenumber", ProductArticleNumber.class);
388         xStream.alias("supplierarticlenumber", SupplierArticleNumber.class);
389         xStream.alias("itemdescription", ItemDescription.class);
390         xStream.alias("quantityinformation", QuantityInformation.class);
391         xStream.alias("quantity", Qunatity.class);
392         xStream.alias("datetimedetail", DateTimeDetail.class);
393         xStream.alias("datetimeinfo", DateTimeInformation.class);
394         xStream.alias("priceinformation", PriceInformation.class);
395         xStream.alias("price", ItemPrice.class);
396         xStream.alias("suppliersreferenceinformation", SupplierReferenceInformation.class);
397         xStream.alias("suppliersreference", SupplierLineItemReference.class);
398 
399         xStream.alias("note", FreeTextNotes.class);
400         xStream.alias("monetary", MonetaryDetail.class);
401         xStream.alias("monetaryinfo", MonetaryLineItemInformation.class);
402 
403         xStream.alias("lineitemallowanceorcharge", LineItemAllowanceOrCharge.class);
404         xStream.alias("lineitemspecialserviceidentification", LineItemSpecialServiceIdentification.class);
405 
406         xStream.alias("allowancemonetaryadditionalcharge", AllowanceMonetaryDetail.class);
407         xStream.alias("allowancemonetaryinfo", AllowanceMonetaryLineItemInformation.class);
408 
409         xStream.addImplicitCollection(INVOrder.class, "lineItemOrder", LineItemOrder.class);
410         xStream.addImplicitCollection(LineItemOrder.class, "lineItem", LineItem.class);
411 
412         xStream.aliasField("sequencenumber", LineItem.class, "sequenceNumber");
413         xStream.aliasField("itemnumberid", LineItem.class, "itemNumberId");
414 
415         xStream.addImplicitCollection(LineItem.class, "lineItemArticleNumber", LineItemArticleNumber.class);
416 
417         xStream.aliasField("isbn", LineItemArticleNumber.class, "lineItemIsbn");
418         xStream.aliasField("itemnumbertype", LineItemArticleNumber.class, "lineItemNumberType");
419 
420         xStream.addImplicitCollection(LineItemOrder.class, "productFunction", ProductFunction.class);
421 
422         xStream.aliasField("productid", ProductFunction.class, "productId");
423 
424         xStream.addImplicitCollection(ProductFunction.class, "productArticleNumber", ProductArticleNumber.class);
425 
426         xStream.aliasField("isbn", ProductArticleNumber.class, "productIsbn");
427         xStream.aliasField("itemnumbertype", ProductArticleNumber.class, "productItemNumberType");
428         xStream.aliasField("unknown1", ProductArticleNumber.class, "unknown1");
429         xStream.aliasField("unknown2", ProductArticleNumber.class, "unknown2");
430         xStream.aliasField("unknown3", ProductArticleNumber.class, "unknown3");
431 
432         xStream.addImplicitCollection(ProductFunction.class, "supplierArticleNumber", SupplierArticleNumber.class);
433 
434         xStream.aliasField("isbn", SupplierArticleNumber.class, "isbn");
435         xStream.aliasField("supplierarticle", SupplierArticleNumber.class, "supplierArticle");
436 
437         xStream.addImplicitCollection(LineItemOrder.class, "itemDescriptionList", ItemDescription.class);
438 
439         xStream.aliasField("text", ItemDescription.class, "text");
440         xStream.aliasField("itemcharacteristiccode", ItemDescription.class, "itemCharacteristicCode");
441         xStream.aliasField("data", ItemDescription.class, "data");
442 
443         xStream.addImplicitCollection(LineItemOrder.class, "quantityInformation", QuantityInformation.class);
444         xStream.addImplicitCollection(QuantityInformation.class, "qunatity", Qunatity.class);
445 
446         xStream.aliasField("constant", Qunatity.class, "quantityConstant");
447         xStream.aliasField("quantity", Qunatity.class, "quantity");
448 
449         xStream.addImplicitCollection(LineItemOrder.class, "dateTimeDetail", DateTimeDetail.class);
450         xStream.addImplicitCollection(DateTimeDetail.class, "dateTimeInformationList", DateTimeInformation.class);
451 
452         xStream.aliasField("periodqualifier", DateTimeInformation.class, "periodQualifier");
453         xStream.aliasField("period", DateTimeInformation.class, "period");
454         xStream.aliasField("periodformat", DateTimeInformation.class, "periodFormat");
455 
456         xStream.addImplicitCollection(LineItemOrder.class, "note", FreeTextNotes.class);
457 
458         xStream.aliasField("notelineitem", FreeTextNotes.class, "noteLineItem");
459         xStream.aliasField("noteempty1", FreeTextNotes.class, "noteempty1");
460         xStream.aliasField("noteempty2", FreeTextNotes.class, "noteempty2");
461         xStream.aliasField("noteempty3", FreeTextNotes.class, "noteempty3");
462 
463         xStream.addImplicitCollection(LineItemOrder.class, "monetaryDetail", MonetaryDetail.class);
464         xStream.addImplicitCollection(MonetaryDetail.class, "monetaryLineItemInformation", MonetaryLineItemInformation.class);
465 
466         xStream.aliasField("monetaryamounttype", MonetaryLineItemInformation.class, "amountType");
467         xStream.aliasField("monetaryamount", MonetaryLineItemInformation.class, "amount");
468 
469 
470 
471 
472 
473         xStream.addImplicitCollection(LineItemOrder.class, "lineItemAllowanceOrCharge", LineItemAllowanceOrCharge.class);
474         xStream.addImplicitCollection(LineItemAllowanceOrCharge.class, "lineItemSpecialServiceIdentification", LineItemSpecialServiceIdentification.class);
475 
476         xStream.aliasField("allowanceorchargequalifier", LineItemAllowanceOrCharge.class, "allowanceOrChargeQualifier");
477         xStream.aliasField("freetext", LineItemAllowanceOrCharge.class, "freeText");
478         xStream.aliasField("settlement", LineItemAllowanceOrCharge.class, "settlement");
479         xStream.aliasField("calculationsequenceindicator", LineItemAllowanceOrCharge.class, "calculationSequenceIndicator");
480 
481         xStream.aliasField("specialservicecode", LineItemSpecialServiceIdentification.class, "specialServiceCode");
482         xStream.aliasField("codelistqualifier", LineItemSpecialServiceIdentification.class, "codeListQualifier");
483         xStream.aliasField("codelistqualifieragency", LineItemSpecialServiceIdentification.class, "codeListQualifierAgency");
484         xStream.aliasField("specialservice", LineItemSpecialServiceIdentification.class, "specialService");
485 
486 
487 
488 
489         xStream.addImplicitCollection(LineItemOrder.class, "allowanceMonetaryDetail", AllowanceMonetaryDetail.class);
490         xStream.addImplicitCollection(AllowanceMonetaryDetail.class, "allowanceMonetaryLineItemInformation", AllowanceMonetaryLineItemInformation.class);
491 
492         xStream.aliasField("monetaryamounttype", AllowanceMonetaryLineItemInformation.class, "amountType");
493         xStream.aliasField("monetaryamount", AllowanceMonetaryLineItemInformation.class, "amount");
494 
495         xStream.addImplicitCollection(LineItemOrder.class, "priceInformation", PriceInformation.class);
496         xStream.addImplicitCollection(PriceInformation.class, "itemPrice", ItemPrice.class);
497 
498         xStream.aliasField("grossprice", ItemPrice.class, "grossPrice");
499         xStream.aliasField("price", ItemPrice.class, "price");
500 
501         xStream.addImplicitCollection(LineItemOrder.class, "supplierReferenceInformation", SupplierReferenceInformation.class);
502         xStream.addImplicitCollection(SupplierReferenceInformation.class, "supplierLineItemReference", SupplierLineItemReference.class);
503 
504         xStream.aliasField("suppliersorderline", SupplierLineItemReference.class, "suppliersOrderLine");
505         xStream.aliasField("vendorreferencenumber", SupplierLineItemReference.class, "vendorReferenceNumber");
506 
507         xStream.aliasField("summary", LineItemOrder.class, "supplierReferenceInformation");
508         xStream.aliasField("summarysection", Summary.class, "summarySection");
509         xStream.aliasField("separatorinfo", SummarySection.class, "separatorInformation");
510 
511         xStream.alias("controlinfomation", ControlInfomation.class);
512         xStream.alias("control", Control.class);
513 
514         xStream.alias("monetarysummary", MonetarySummary.class);
515         xStream.alias("monetaryinfosummary", MonetarySummaryInformation.class);
516 
517         xStream.addImplicitCollection(Summary.class, "controlInfomation", ControlInfomation.class);
518         xStream.addImplicitCollection(ControlInfomation.class, "control", Control.class);
519 
520         xStream.aliasField("controlqualifier", Control.class, "controlQualifier");
521         xStream.aliasField("totalqtysegments", Control.class, "totalQuantitySegments");
522 
523         xStream.addImplicitCollection(Summary.class, "monetarySummary", MonetarySummary.class);
524         xStream.addImplicitCollection(MonetarySummary.class, "monetarySummaryInformation", MonetarySummaryInformation.class);
525 
526         xStream.aliasField("monetaryamounttype", MonetarySummaryInformation.class, "amountType");
527         xStream.aliasField("monetaryamount", MonetarySummaryInformation.class, "amount");
528 
529 
530         xStream.aliasField("unt", Summary.class, "untSummary");
531         xStream.aliasField("messagesegmentsnumber", UNTSummary.class, "segmentNumber");
532         xStream.aliasField("linsegmentstotal", UNTSummary.class, "linSegmentTotal");
533         xStream.addImplicitCollection(INVOrders.class, "invOrder");
534         return xStream;
535     }
536 
537 }