1 package org.openprovenance.elmo;
2 import java.util.Set;
3 import java.net.URI;
4 import org.openprovenance.rdf.Account;
5 import org.openprovenance.rdf.Node;
6 import org.w3c.dom.Document;
7 import org.w3c.dom.Element;
8 import javax.xml.namespace.QName;
9 import org.openrdf.elmo.ElmoManager;
10
11
12 public class RdfValue extends org.openprovenance.model.Value implements HasFacade {
13
14 ElmoManager manager;
15 String prefix;
16 QName qname;
17
18 static int count=0;
19
20 public RdfValue(ElmoManager manager, QName qname) {
21 this.manager=manager;
22 this.qname=qname;
23 this.prefix=qname.getNamespaceURI();
24 setId(qname.getLocalPart());
25 }
26
27
28 public RdfValue(ElmoManager manager, String prefix) {
29 this.manager=manager;
30 this.prefix=prefix;
31 setId("av_" + (count++));
32 }
33
34 public void setId(String value) {
35 qname = new QName(prefix, value);
36 manager.designate(qname, org.openprovenance.rdf.AValue.class);
37 }
38
39
40
41 public void setContent(Object value) {
42 super.setContent(value);
43 org.openprovenance.rdf.AValue r=findMyFacade();
44 if (value instanceof Element) {
45 r.setContent(new XMLLiteral(((Element)value).getOwnerDocument()));
46 } else {
47 r.setContent(value);
48 }
49 }
50
51
52 public void setEncoding(String encoding) {
53 super.setEncoding(encoding);
54 org.openprovenance.rdf.AValue r=findMyFacade();
55 r.setEncoding(URI.create(encoding));
56 }
57
58 public QName getQName() {
59 return qname;
60 }
61
62 public org.openprovenance.rdf.AValue findMyFacade() {
63 org.openprovenance.rdf.AValue r=(org.openprovenance.rdf.AValue)manager.find(getQName());
64 return r;
65 }
66
67 public void setFields(Object content, String encoding) {
68 super.setContent(content);
69 super.setEncoding(encoding);
70 }
71
72 }
73
74
75