|
From: <rv...@us...> - 2009-06-28 10:09:49
|
Revision: 134
http://treebase.svn.sourceforge.net/treebase/?rev=134&view=rev
Author: rvos
Date: 2009-06-28 10:09:22 +0000 (Sun, 28 Jun 2009)
Log Message:
-----------
Now attaches dc:relation annotations to link to enclosed resources, no longer uses dc:identifier
Modified Paths:
--------------
trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlObjectConverter.java
Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlObjectConverter.java
===================================================================
--- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlObjectConverter.java 2009-06-27 07:04:54 UTC (rev 133)
+++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlObjectConverter.java 2009-06-28 10:09:22 UTC (rev 134)
@@ -79,14 +79,9 @@
*/
protected void attachTreeBaseID(Annotatable annotatable,TBPersistable tbPersistable,Class<?> persistableClass) {
if ( null != tbPersistable.getId() ) {
- attachAnnotation(mDCIdentifier,makeNamespacedID(tbPersistable,persistableClass),mDCURI,annotatable);
- String uriString = mBaseURI.toString() + makeNamespacedID(tbPersistable,persistableClass);
- try {
- annotatable.addAnnotationValue("dc:relation",mDCURI, new URI(uriString));
- } catch (URISyntaxException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ //attachAnnotation(mDCIdentifier,makeNamespacedID(tbPersistable,persistableClass),mDCURI,annotatable);
+ String uriString = getDocument().getBaseURI().toString() + tbPersistable.getPhyloWSPath().toString();
+ annotatable.addAnnotationValue("dc:relation",mDCURI, URI.create(uriString));
}
}
@@ -98,7 +93,7 @@
* @param annotatable
*/
protected void attachAnnotation(String key,String value,URI namespace,Annotatable annotatable) {
- Annotation annotation = annotatable.addAnnotationValue(key, namespace, value); // FIXME! Attaches meta element as last child
+ Annotation annotation = annotatable.addAnnotationValue(key, namespace, value);
}
/**
@@ -113,19 +108,19 @@
// dc:identifier predicate in a nexml meta annotation,
// e.g. <meta property="dc:identifier" content="TB2:Tr231"/>
// this will return something that stringifies to TB2:Tr231
- Set<Object> dublinCoreIdentifierObjects = annotatable.getAnnotationValues(mDCIdentifier);
- Iterator<Object> objectIterator = dublinCoreIdentifierObjects.iterator();
+ Set<Object> dublinCoreRelationObjects = annotatable.getRelValues("dc:relation");
+ Iterator<Object> objectIterator = dublinCoreRelationObjects.iterator();
while ( objectIterator.hasNext() ) {
- TreebaseIDString treebaseIDString = null;
- NamespacedGUID namespacedGUID = null;
- try {
- namespacedGUID = new NamespacedGUID(objectIterator.next().toString());
- treebaseIDString = namespacedGUID.getTreebaseIDString();
- return treebaseIDString.getId();
- } catch ( MalformedTreebaseIDString e ) {
- // XXX do nothing, it's OK, it means we're
- // parsing an id from a different naming
- // authority, e.g. uBio or NCBI
+ URI relationURI = (URI)objectIterator.next();
+ String urlFragment = getDocument().getBaseURI().toString() + "taxon/TB2:";
+ if ( relationURI.toString().startsWith(urlFragment) ) {
+ String rawTreebaseIDString = relationURI.toString().substring(urlFragment.length());
+ try {
+ TreebaseIDString treebaseIDString = new TreebaseIDString(rawTreebaseIDString);
+ return treebaseIDString.getId();
+ } catch ( MalformedTreebaseIDString e ) {
+ e.printStackTrace();
+ }
}
}
return null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|