1 package org.kuali.ole.ingest.krms.builder;
2
3 import com.thoughtworks.xstream.XStream;
4 import org.kuali.ole.docstore.model.xmlpojo.work.bib.marc.DataField;
5 import org.kuali.ole.docstore.model.xmlpojo.work.bib.marc.SubField;
6 import org.kuali.ole.docstore.model.xstream.work.bib.marc.DataFieldConverter;
7 import org.kuali.ole.docstore.model.xstream.work.bib.marc.SubFieldConverter;
8 import org.kuali.ole.ingest.ProfileAttributeConverter;
9 import org.kuali.ole.ingest.krms.pojo.*;
10 import org.kuali.ole.ingest.pojo.*;
11 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
12
13 import java.io.IOException;
14 import java.net.URISyntaxException;
15 import java.util.ArrayList;
16 import java.util.List;
17
18
19
20
21
22
23
24
25 public class OleKrmsObjectGeneratorFromXML {
26
27
28
29
30
31
32
33
34 public OleKrms buildKrmsFromFileContent(String fileContent) throws URISyntaxException, IOException {
35 XStream xStream = new XStream();
36 xStream.alias("agendas", OleKrms.class);
37 xStream.alias("agenda", OleKrmsAgenda.class);
38 xStream.alias("rule", OleKrmsRule.class);
39 xStream.alias("attribute", ProfileAttributeBo.class);
40 xStream.alias("overlayOption", OverlayOption.class);
41 xStream.alias("datafield", DataField.class);
42 xStream.alias("subfield", SubField.class);
43 xStream.alias("oleProposition",OleKrmsProposition.class);
44 xStream.alias("simpleProposition",OleSimpleProposition.class);
45 xStream.alias("compoundProposition",OleCompoundProposition.class);
46 xStream.alias("action", OleKrmsAction.class);
47 xStream.alias("value", OleValue.class);
48 xStream.alias("term", OleTerm.class);
49 xStream.alias("parameter",OleParameter.class);
50 xStream.addImplicitCollection(OleKrms.class,"agendas");
51 xStream.addImplicitCollection(OleCompoundProposition.class,"simplePropositions",OleSimpleProposition.class);
52 xStream.addImplicitCollection(OleCompoundProposition.class,"compoundPropositions",OleCompoundProposition.class);
53 xStream.addImplicitCollection(OleKrmsRuleAction.class,"krmsActions",OleKrmsAction.class);
54 xStream.addImplicitCollection(OleKrmsRuleAction.class,"krmsRules",OleKrmsRule.class);
55 xStream.addImplicitCollection(OleSimpleProposition.class,"terms",OleTerm.class);
56 xStream.addImplicitCollection(OleKrmsAction.class,"parameters",OleParameter.class);
57 xStream.registerConverter(new ProfileAttributeConverter());
58 xStream.registerConverter(new DataFieldConverter());
59 xStream.registerConverter(new SubFieldConverter());
60 Object object = xStream.fromXML(fileContent);
61 return (OleKrms) object;
62 }
63 }