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. |