001 package org.kuali.ole;
002
003 import com.thoughtworks.xstream.XStream;
004 import org.kuali.ole.pojo.OleBibRecord;
005 import org.kuali.ole.pojo.OleOrderRecord;
006 import org.kuali.ole.pojo.OleTxRecord;
007 import org.kuali.ole.pojo.bib.BibliographicRecord;
008 import org.kuali.ole.pojo.edi.EDIOrder;
009
010 /**
011 * Created by IntelliJ IDEA.
012 * User: pvsubrah
013 * Date: 4/9/12
014 * Time: 7:20 AM
015 * To change this template use File | Settings | File Templates.
016 */
017 public class OleOrderRecordHandler {
018
019 public OleOrderRecords fromXML(String marcXMLContent) {
020 XStream xStream = new XStream();
021 xStream.alias("records", OleOrderRecords.class);
022 xStream.alias("record", OleOrderRecord.class);
023 xStream.alias("oleBibRecord", OleBibRecord.class);
024 xStream.aliasField("bibRecord", OleOrderRecord.class, "oleBibRecord");
025 xStream.aliasField("bibFileName", OleOrderRecord.class, "oleOriginalBibRecordFileName");
026 xStream.aliasField("ediFileName", OleOrderRecord.class, "originalEDIFileName");
027 xStream.alias("oleTxRecord", OleTxRecord.class);
028 xStream.aliasField("transactionRecord", OleOrderRecord.class, "oleTxRecord");
029 xStream.alias("originalRecord", BibliographicRecord.class);
030 xStream.aliasField("bibliographicRecord", OleOrderRecord.class, "originalRecord");
031 xStream.alias("originalEdi", EDIOrder.class);
032 xStream.aliasField("ediOrder", OleOrderRecord.class, "originalEdi");
033 xStream.addImplicitCollection(OleOrderRecords.class, "records");
034 return (OleOrderRecords) xStream.fromXML(marcXMLContent);
035 }
036
037
038 public String toXML(OleOrderRecords oleOrderRecords) {
039 StringBuffer stringBuffer = new StringBuffer();
040 stringBuffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
041 stringBuffer.append("\n");
042 XStream xStream = new XStream();
043 xStream.alias("records", OleOrderRecords.class);
044 xStream.alias("record", OleOrderRecord.class);
045 xStream.alias("oleBibRecord", OleBibRecord.class);
046 xStream.aliasField("bibRecord", OleOrderRecord.class, "oleBibRecord");
047 xStream.aliasField("bibFileName", OleOrderRecord.class, "oleOriginalBibRecordFileName");
048 xStream.aliasField("ediFileName", OleOrderRecord.class, "originalEDIFileName");
049 xStream.alias("oleTxRecord", OleTxRecord.class);
050 xStream.aliasField("transactionRecord", OleOrderRecord.class, "oleTxRecord");
051 xStream.alias("originalRecord", BibliographicRecord.class);
052 xStream.aliasField("bibliographicRecord", OleOrderRecord.class, "originalRecord");
053 xStream.alias("originalEdi", EDIOrder.class);
054 xStream.aliasField("ediOrder", OleOrderRecord.class, "originalEdi");
055 xStream.addImplicitCollection(OleOrderRecords.class, "records");
056 String xml = xStream.toXML(oleOrderRecords);
057 stringBuffer.append(xml);
058 stringBuffer.append("\n");
059 return stringBuffer.toString();
060 }
061 }