1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.documenthandler;
17
18 import org.kuali.ole.docstore.model.xmlpojo.ingest.RequestDocument;
19 import org.kuali.ole.docstore.model.xmlpojo.work.instance.oleml.*;
20 import org.kuali.ole.docstore.model.xstream.work.instance.oleml.WorkInstanceOlemlRecordProcessor;
21
22 import javax.jcr.Node;
23 import javax.jcr.RepositoryException;
24 import java.util.ArrayList;
25
26
27
28
29
30
31
32 public class WorkInstanceOleMLContentHandler {
33 private WorkInstanceOlemlRecordProcessor olemlProcessor = new WorkInstanceOlemlRecordProcessor();
34
35
36
37
38
39
40
41
42
43
44 public void doInstanceOleMLContentManipulations(RequestDocument document, final String fileNodeUUID,
45 final Node parentNode) throws RepositoryException {
46 if (document.getContent().getContentObject() instanceof OleHoldings) {
47 ((OleHoldings) document.getContent().getContentObject()).setHoldingsIdentifier(fileNodeUUID);
48 document.getContent()
49 .setContent(olemlProcessor.toXML((OleHoldings) document.getContent().getContentObject()));
50 }
51 else if (document.getContent().getContentObject() instanceof SourceHoldings) {
52 ((SourceHoldings) document.getContent().getContentObject()).setHoldingsIdentifier(fileNodeUUID);
53 document.getContent()
54 .setContent(olemlProcessor.toXML((SourceHoldings) document.getContent().getContentObject()));
55 }
56 else if (document.getContent().getContentObject() instanceof Item) {
57 ((Item) document.getContent().getContentObject()).setItemIdentifier(fileNodeUUID);
58 document.getContent().setContent(olemlProcessor.toXML((Item) document.getContent().getContentObject()));
59 }
60 else if (document.getContent().getContentObject() instanceof Instance) {
61 Instance inst = ((Instance) document.getContent().getContentObject());
62 inst.setInstanceIdentifier(parentNode.getIdentifier());
63 InstanceCollection instanceCollection = new InstanceCollection();
64 ArrayList<Instance> oleinsts = new ArrayList<Instance>();
65 oleinsts.add(inst);
66 instanceCollection.setInstance((oleinsts));
67 document.getContent().setContent(olemlProcessor.toXML(instanceCollection));
68 }
69 }
70 }