|
From: <rv...@us...> - 2010-02-12 04:37:37
|
Revision: 494
http://treebase.svn.sourceforge.net/treebase/?rev=494&view=rev
Author: rvos
Date: 2010-02-12 04:37:30 +0000 (Fri, 12 Feb 2010)
Log Message:
-----------
Added DwC:DecimalLatitude and DwC:DecimalLongitude annotations
Modified Paths:
--------------
trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlMatrixConverter.java
Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlMatrixConverter.java
===================================================================
--- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlMatrixConverter.java 2010-02-12 04:35:22 UTC (rev 493)
+++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/nexus/nexml/NexmlMatrixConverter.java 2010-02-12 04:37:30 UTC (rev 494)
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import org.cipres.treebase.dao.jdbc.ContinuousMatrixElementJDBC;
import org.cipres.treebase.dao.jdbc.ContinuousMatrixJDBC;
@@ -22,6 +23,7 @@
import org.cipres.treebase.domain.matrix.MatrixElement;
import org.cipres.treebase.domain.matrix.MatrixRow;
import org.cipres.treebase.domain.matrix.PhyloChar;
+import org.cipres.treebase.domain.matrix.RowSegment;
import org.cipres.treebase.domain.matrix.StandardMatrix;
import org.cipres.treebase.domain.study.Study;
import org.cipres.treebase.domain.taxon.TaxonLabelHome;
@@ -292,11 +294,12 @@
DiscreteMatrix tbMatrix) {
OTUs xmlOTUs = xmlMatrix.getOTUs();
List<org.nexml.model.Character> characterList = xmlMatrix.getCharacters();
- for ( MatrixRow row : tbMatrix.getRowsReadOnly() ) {
- OTU xmlOTU = getOTUById(xmlOTUs, row.getTaxonLabel().getId());
+ for ( MatrixRow tbRow : tbMatrix.getRowsReadOnly() ) {
+ Set<RowSegment> tbSegments = tbRow.getSegmentsReadOnly();
+ OTU xmlOTU = getOTUById(xmlOTUs, tbRow.getTaxonLabel().getId());
int charIndex = 0;
if ( characterList.size() <= MAX_GRANULAR_NCHAR && xmlOTUs.getAllOTUs().size() <= MAX_GRANULAR_NTAX ) {
- for ( MatrixElement tbCell : row.getElements() ) {
+ for ( MatrixElement tbCell : tbRow.getElements() ) {
org.nexml.model.Character xmlCharacter = characterList.get(charIndex);
MatrixCell<CharacterState> xmlCell = xmlMatrix.getCell(xmlOTU, xmlCharacter);
DiscreteCharState tbState = ((DiscreteMatrixElement)tbCell).getCharState();
@@ -304,11 +307,21 @@
CharacterState xmlState = xmlCharacter.getCharacterStateSet().lookupCharacterStateBySymbol(tbSymbolString);
xmlCell.setValue(xmlState);
attachTreeBaseID((Annotatable)xmlCell,tbCell,DiscreteMatrixElement.class);
+ for ( RowSegment tbSegment : tbSegments ) {
+ if ( tbSegment.getStartIndex() <= charIndex && charIndex <= tbSegment.getEndIndex() ) {
+ if ( tbSegment.getSpecimenLabel().getLatitude() != null ) {
+ ((Annotatable)xmlCell).addAnnotationValue("DwC:DecimalLatitude", mDwCURI, tbSegment.getSpecimenLabel().getLatitude());
+ }
+ if ( tbSegment.getSpecimenLabel().getLongitude() != null ) {
+ ((Annotatable)xmlCell).addAnnotationValue("DwC:DecimalLongitude", mDwCURI, tbSegment.getSpecimenLabel().getLongitude());
+ }
+ }
+ }
charIndex++;
}
}
else {
- String seq = row.buildElementAsString();
+ String seq = tbRow.buildElementAsString();
if ( tbMatrix.getDataType().getDescription().equals(MatrixDataType.MATRIX_DATATYPE_STANDARD) ) {
StringBuilder sb = new StringBuilder();
for ( int i = 0; i < seq.length(); i++ ) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|