+ log.debug("Finished.");\r
+ }\r
+ private boolean updateRoot(VAMSAS vamsas) {\r
+ boolean called=false;\r
+ DataSet[] dset = vamsas.getDataSet();\r
+ if (dset!=null) {\r
+ for (int ds=0; ds<dset.length; ds++) {\r
+ if (dset[ds].isNewInDocument() || dset[ds].isUpdated()) {\r
+ if (!updateDataset(dset[ds])) {\r
+ log.debug("Calling handler(Dataset)");\r
+ handler.update(dset[ds]);\r
+ called=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ return called;\r
+ }\r
+ private boolean updateDataset(DataSet set) {\r
+ boolean called=false;\r
+ // Sequences\r
+ Sequence[] dseq = set.getSequence();\r
+ if (dseq!=null) {\r
+ for (int s=0;s<dseq.length; s++) {\r
+ if (dseq[s].isNewInDocument() || dseq[s].isUpdated()) {\r
+ if (!updateSequence(dseq[s])) {\r
+ log.debug("Calling update(Sequence)");\r
+ handler.update(dseq[s]);\r
+ called=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // Annotations\r
+ DataSetAnnotations[] dann=set.getDataSetAnnotations();\r
+ if (dann!=null) {\r
+ for (int a=0; a<dann.length; a++) {\r
+ if (dann[a].isNewInDocument() || dann[a].isUpdated()) {\r
+ if (!updateDataSetAnnotation(dann[a])) {\r
+ log.debug("Calling update(DataSetAnnotation)");\r
+ handler.update(dann[a]);\r
+ called=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // Alignments\r
+ Alignment[] al=set.getAlignment();\r
+ if (al!=null) {\r
+ for (int a=0;a<al.length;a++) {\r
+ if (al[a].isNewInDocument() || al[a].isUpdated()) {\r
+ if (!updateAlignment(al[a])) {\r
+ log.debug("Calling update(Alignment)");\r
+ handler.update(al[a]);\r
+ called=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // Trees associated with dataset sequences\r
+ if (updateTrees(set.getTree())) {\r
+ called=true;\r
+ }\r
+ return called;\r
+ }\r
+ private boolean updateTrees(Tree[] trees) {\r
+ boolean called=false;\r
+ if (trees!=null) {\r
+ for (int t=0;t<trees.length; t++) {\r
+ if (trees[t].isNewInDocument() || trees[t].isUpdated()) {\r
+ if (!updateTree(trees[t])) {\r
+ log.debug("Calling update(tree)");\r
+ handler.update(trees[t]);\r
+ called=true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ return called;\r
+ }\r
+ private boolean updateDataSetAnnotation(DataSetAnnotations annotations) {\r
+ boolean called=false;\r
+ return called;\r
+ }\r
+ private boolean updateTree(Tree tree) {\r
+ // TODO: if (\r
+ return false;\r
+ }\r
+ private boolean updateAlignment(Alignment alignment) {\r
+ // TODO Auto-generated method stub\r
+ return false;\r
+ }\r
+ private boolean updateSequence(Sequence sequence) {\r
+ // TODO Auto-generated method stub\r
+ return false;\r