1 package org.openprovenance.elmo; 2 import java.util.Set; 3 import org.openprovenance.rdf.Account; 4 import org.openprovenance.rdf.Node; 5 import org.openprovenance.rdf.Annotable; 6 7 import javax.xml.namespace.QName; 8 import org.openrdf.elmo.ElmoManager; 9 10 public class RdfAnnotation extends org.openprovenance.model.Annotation implements HasFacade { 11 12 ElmoManager manager; 13 String prefix; 14 QName qname; 15 16 public RdfAnnotation(ElmoManager manager, QName qname) { 17 this.manager=manager; 18 this.qname=qname; 19 this.prefix=qname.getNamespaceURI(); 20 super.setId(qname.getLocalPart()); 21 } 22 23 24 25 public RdfAnnotation(ElmoManager manager, String prefix) { 26 this.manager=manager; 27 this.prefix=prefix; 28 } 29 30 public void setId(String value) { 31 super.setId(value); 32 qname = new QName(prefix, value); 33 manager.designate(qname, org.openprovenance.rdf.Annotation.class); 34 } 35 36 public void setLocalSubject(Object value) { 37 super.setLocalSubject(value); 38 Annotable ann=(Annotable) ((HasFacade)value).findMyFacade(); 39 ann.getAnnotations().add(findMyFacade()); 40 } 41 42 public QName getQName() { 43 return qname; 44 } 45 46 public org.openprovenance.rdf.Annotation findMyFacade() { 47 org.openprovenance.rdf.Annotation r=(org.openprovenance.rdf.Annotation)manager.find(getQName()); 48 return r; 49 } 50 51 52 53 54 }