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 }