001 package org.kuali.ole;
002
003 import com.thoughtworks.xstream.XStream;
004 import org.kuali.ole.pojo.edi.*;
005
006 import java.util.Arrays;
007
008
009 /**
010 * Created by IntelliJ IDEA.
011 * User: palanivel
012 * Date: 3/2/12
013 * Time: 8:11 PM
014 * To change this template use File | Settings | File Templates.
015 */
016 public class OLETranscationalRecordGenerator {
017
018 public String toXml(EDIOrder ediOrder) {
019 EDIOrders ediOrders = new EDIOrders();
020 ediOrders.setOrders(Arrays.asList(ediOrder));
021 String xml = toXml(ediOrders);
022 return xml;
023 }
024
025 public String toXml(EDIOrders ediOrders) {
026 XStream xStream = intXStream();
027 String order = xStream.toXML(ediOrders);
028 return order;
029 }
030
031 public EDIOrders fromXml(String requestXML) {
032 XStream xStream = intXStream();
033 return (EDIOrders) xStream.fromXML(requestXML);
034 }
035
036 private XStream intXStream() {
037 XStream xStream = new XStream();
038 xStream.alias("orders", EDIOrders.class);
039 xStream.alias("order", EDIOrder.class);
040 xStream.addImplicitCollection(EDIOrders.class, "orders",EDIOrder.class);
041
042 xStream.aliasField("sendersandreceiversidentification", EDIOrder.class, "senderAndReceiver");
043 xStream.aliasField("sendersandreceiversconstant", SenderAndReceiver.class, "sendersAndReceiversConstant");
044 xStream.aliasField("code", SendersAndReceiversConstant.class, "code");
045 xStream.aliasField("value", SendersAndReceiversConstant.class, "value");
046 xStream.aliasField("senderinformation", SenderAndReceiver.class, "senderInformation");
047 xStream.aliasField("senderid", SenderInformation.class, "senderId");
048 xStream.aliasField("senderidtype", SenderInformation.class, "senderIdType");
049 xStream.aliasField("receiverinformation", SenderAndReceiver.class, "receiverInformation");
050 xStream.aliasField("receiverid", ReceiverInformation.class, "receiverId");
051 xStream.aliasField("receiveridtype", ReceiverInformation.class, "receiverIdType");
052 xStream.aliasField("schedule", SenderAndReceiver.class, "schedule");
053 xStream.aliasField("preparationdate", Schedule.class, "preparationDate");
054 xStream.aliasField("preparationtime", Schedule.class, "preparationTime");
055 xStream.aliasField("interchangecontrolref", SenderAndReceiver.class, "interChangeControlReference");
056
057 xStream.aliasField("messageheader", EDIOrder.class, "messageHeader");
058 xStream.aliasField("interchangecontrolref", MessageHeader.class, "interchangeControlReference");
059 xStream.aliasField("messagetypeinformation", MessageHeader.class, "messsageTypeInformation");
060 xStream.aliasField("messagetypeid", MesssageTypeInformation.class, "messageTypeId");
061 xStream.aliasField("constant1", MesssageTypeInformation.class, "constant1");
062 xStream.aliasField("constant2", MesssageTypeInformation.class, "constant2");
063 xStream.aliasField("constant3", MesssageTypeInformation.class, "constant3");
064 xStream.aliasField("constant4", MesssageTypeInformation.class, "constant4");
065
066 xStream.aliasField("message", EDIOrder.class, "message");
067 xStream.aliasField("messagebeginning", Message.class, "messageBeginning");
068 xStream.aliasField("order", MessageBeginning.class, "messageBeginningOrder");
069 xStream.aliasField("interchangecontrolref", MessageBeginning.class, "messageBeginningInterchangeControlReference");
070 xStream.aliasField("codelistagency", MessageBeginning.class, "messageBeginningCodeListAgency");
071
072 xStream.aliasField("messagecreationinfo", Message.class, "messageCreationInformation");
073 xStream.aliasField("details", MessageCreationInformation.class, "messageCreationInfoDetails");
074 xStream.aliasField("constant", MessageCreationInfoDetails.class, "messageCreationInfoConstant");
075 xStream.aliasField("date", MessageCreationInfoDetails.class, "messageCreationInfoDate");
076 xStream.aliasField("dateformat", MessageCreationInfoDetails.class, "messageCreationInfoDateFormat");
077
078 xStream.aliasField("buyerpartyqualifier", Message.class, "buyerPartyQualifier");
079 xStream.aliasField("buyer", BuyerPartyQualifier.class, "buyer");
080 xStream.aliasField("buyerinfo", BuyerPartyQualifier.class, "buyerInformation");
081 xStream.aliasField("codedidentification", BuyerInformation.class, "buyerCodeIdentification");
082 xStream.aliasField("partyidentificationcode", BuyerInformation.class, "buyerPartyIdentificationCode");
083 xStream.aliasField("codelistagency", BuyerInformation.class, "buyerCodeListAgency");
084
085 xStream.aliasField("reference", Message.class, "messageReference");
086 xStream.aliasField("partydetails", MessageReference.class, "partyDetails");
087 xStream.aliasField("additionalpartyidentification", PartyDetails.class, "additionalPartyIdentification");
088 xStream.aliasField("partyname", PartyDetails.class, "partyName");
089
090 xStream.aliasField("supplierpartyqualifier", Message.class, "supplierPartyQualifier");
091 xStream.aliasField("supplier", SupplierPartyQualifier.class, "supplier");
092 xStream.aliasField("supplierinfo", SupplierPartyQualifier.class, "supplierInformation");
093 xStream.aliasField("codedidentification", SupplierInformation.class, "supplierCodeIdentification");
094 xStream.aliasField("partyidentificationcode", SupplierInformation.class, "supplierPartyIdentificationCode");
095 xStream.aliasField("codelistagency", SupplierInformation.class, "supplierCodeListAgency");
096
097 xStream.aliasField("currencydetails", Message.class, "currencyDetails");
098 xStream.aliasField("supplierinfo", CurrencyDetails.class, "currencyDetailsSupplierInformation");
099 xStream.aliasField("defaultcurrency", CurrencyDetailsSupplierInformation.class, "defaultCurrency");
100 xStream.aliasField("currencytype", CurrencyDetailsSupplierInformation.class, "currencyType");
101 xStream.aliasField("ordercurrency", CurrencyDetailsSupplierInformation.class, "orderCurrency");
102
103 xStream.alias("lineitemOrder", LineItemOrder.class);
104 xStream.alias("lineitem", LineItem.class);
105 xStream.alias("articlenumber", LineItemArticleNumber.class);
106 xStream.alias("productfunction", ProductFunction.class);
107 xStream.alias("articlenumber", ProductArticleNumber.class);
108 xStream.alias("itemdescription", ItemDescription.class);
109 xStream.alias("quantityinformation", QuantityInformation.class);
110 xStream.alias("quantity", Qunatity.class);
111 xStream.alias("priceinformation", PriceInformation.class);
112 xStream.alias("price", ItemPrice.class);
113 xStream.alias("referenceinformation", BuyerReferenceInformation.class);
114 xStream.alias("reference", BuyerLineItemReference.class);
115 xStream.alias("suppliersreferenceinformation", SupplierReferenceInformation.class);
116 xStream.alias("suppliersreference", SupplierLineItemReference.class);
117 xStream.alias("fundnumberreference", FundNumberReference.class);
118 xStream.alias("buyers", BuyersFundNumberReference.class);
119 xStream.alias("note",FreeTextNotes.class);
120 xStream.alias("transportstagequalifier", TransportStageQualifier.class);
121
122 xStream.addImplicitCollection(EDIOrder.class, "lineItemOrder",LineItemOrder.class);
123 xStream.addImplicitCollection(LineItemOrder.class, "lineItem",LineItem.class);
124
125 xStream.aliasField("sequencenumber",LineItem.class,"sequenceNumber");
126 xStream.aliasField("itemnumberid",LineItem.class,"itemNumberId");
127
128 xStream.addImplicitCollection(LineItem.class, "lineItemArticleNumber",LineItemArticleNumber.class);
129
130 xStream.aliasField("isbn",LineItemArticleNumber.class,"lineItemIsbn");
131 xStream.aliasField("itemnumbertype",LineItemArticleNumber.class,"lineItemNumberType");
132
133 xStream.addImplicitCollection(LineItemOrder.class, "productFunction",ProductFunction.class);
134
135 xStream.aliasField("productid",ProductFunction.class,"productId");
136
137 xStream.addImplicitCollection(ProductFunction.class, "productArticleNumber",ProductArticleNumber.class);
138
139 xStream.aliasField("isbn",ProductArticleNumber.class,"productIsbn");
140 xStream.aliasField("itemnumbertype",ProductArticleNumber.class,"productItemNumberType");
141
142 xStream.addImplicitCollection(LineItemOrder.class, "itemDescriptionList",ItemDescription.class);
143
144 xStream.aliasField("text",ItemDescription.class,"text");
145 xStream.aliasField("itemcharacteristiccode",ItemDescription.class,"itemCharacteristicCode");
146 xStream.aliasField("data",ItemDescription.class,"data");
147
148 xStream.addImplicitCollection(LineItemOrder.class, "quantityInformation",QuantityInformation.class);
149 xStream.addImplicitCollection(QuantityInformation.class, "qunatity",Qunatity.class);
150
151 xStream.aliasField("constant",Qunatity.class,"quantityConstant");
152 xStream.aliasField("quantity",Qunatity.class,"quantity");
153
154 xStream.addImplicitCollection(LineItemOrder.class, "priceInformation",PriceInformation.class);
155 xStream.addImplicitCollection(PriceInformation.class, "itemPrice",ItemPrice.class);
156
157 xStream.aliasField("grossprice",ItemPrice.class,"grossPrice");
158 xStream.aliasField("price",ItemPrice.class,"price");
159
160 xStream.addImplicitCollection(LineItemOrder.class, "buyerReferenceInformation",BuyerReferenceInformation.class);
161 xStream.addImplicitCollection(BuyerReferenceInformation.class, "buyerLineItemReference",BuyerLineItemReference.class);
162
163 xStream.aliasField("buyersorderline",BuyerLineItemReference.class,"buyersOrderLine");
164 xStream.aliasField("orderlinenumber",BuyerLineItemReference.class,"orderLineNumber");
165
166
167 xStream.addImplicitCollection(LineItemOrder.class, "supplierReferenceInformation",SupplierReferenceInformation.class);
168 xStream.addImplicitCollection(SupplierReferenceInformation.class, "supplierLineItemReference",SupplierLineItemReference.class);
169
170 xStream.aliasField("suppliersorderline",SupplierLineItemReference.class,"suppliersOrderLine");
171 xStream.aliasField("vendorreferencenumber",SupplierLineItemReference.class,"vendorReferenceNumber");
172
173
174 xStream.addImplicitCollection(LineItemOrder.class, "fundNumberReference",FundNumberReference.class);
175 xStream.addImplicitCollection(FundNumberReference.class, "buyersFundNumberReference",BuyersFundNumberReference.class);
176
177 xStream.aliasField("buyersfundnumber",BuyersFundNumberReference.class,"buyersFundNumber");
178 xStream.aliasField("budgetnumber",BuyersFundNumberReference.class,"budgetNumber");
179
180 xStream.addImplicitCollection(LineItemOrder.class, "note",FreeTextNotes.class);
181
182 xStream.aliasField("notelineitem",FreeTextNotes.class,"noteLineItem");
183 xStream.aliasField("noteempty1",FreeTextNotes.class,"noteempty1");
184 xStream.aliasField("noteempty2",FreeTextNotes.class,"noteempty2");
185 xStream.aliasField("noteempty3",FreeTextNotes.class,"noteempty3");
186
187
188 xStream.addImplicitCollection(LineItemOrder.class, "transportStageQualifier",TransportStageQualifier.class);
189
190 xStream.aliasField("transportstagequalifierconstant",TransportStageQualifier.class,"transportStageConstant");
191 xStream.aliasField("surfacemail",TransportStageQualifier.class,"surfaceMail");
192
193
194 xStream.aliasField("summary", LineItemOrder.class, "supplierReferenceInformation");
195 xStream.aliasField("summarysection", Summary.class, "summarySection");
196 xStream.aliasField("separatorinfo", SummarySection.class, "separatorInformation");
197
198 xStream.alias("controlinfomation", ControlInfomation.class);
199 xStream.alias("control", Control.class);
200
201 xStream.addImplicitCollection(Summary.class, "controlInfomation",ControlInfomation.class);
202 xStream.addImplicitCollection(ControlInfomation.class, "control",Control.class);
203
204 xStream.aliasField("controlqualifier", Control.class, "controlQualifier");
205 xStream.aliasField("totalqtysegments", Control.class, "totalQuantitySegments");
206
207
208 xStream.aliasField("unt", Summary.class, "untSummary");
209 xStream.aliasField("messagesegmentsnumber", UNTSummary.class, "segmentNumber");
210 xStream.aliasField("linsegmentstotal", UNTSummary.class, "linSegmentTotal");
211 xStream.addImplicitCollection(EDIOrders.class, "orders");
212 return xStream;
213 }
214
215 }