apply version 2.7 copyright
[jalview.git] / src / jalview / ws / rest / RestJob.java
index 445c249..200c573 100644 (file)
@@ -1,3 +1,20 @@
+/*******************************************************************************
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
 package jalview.ws.rest;
 
 import java.io.IOException;
@@ -11,6 +28,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.Vector;
 
+import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentOrder;
 import jalview.datamodel.AlignmentView;
@@ -96,11 +114,14 @@ public class RestJob extends AWsJob
         }
         else
         {
+          // TODO: move validation of input data to SeqGroupIndexVector
           if ((prm.getValue() instanceof SeqGroupIndexVector)
                   && (_input.getGroups() != null && _input.getGroups()
-                          .size() > 0))
+                          .size() >= prm.getValue().min))
           {
             alinp.add(prm.getValue());
+          } else {
+            statMessage=("Not enough groups defined on the alignment - need at least "+prm.getValue().min);
           }
         }
       }
@@ -256,6 +277,19 @@ public class RestJob extends AWsJob
       context = new JalviewDataset(dsForIO, null, squniq, null);
       if (contextAl!=null)
       {
+        // TODO devise way of merging new annotation onto (identical) existing annotation that was used as input
+        // delete all input annotation 
+        if (contextAl.getAlignmentAnnotation()!=null) {
+          for (AlignmentAnnotation alan: contextAl.getAlignmentAnnotation()) {
+            contextAl.deleteAnnotation(alan);
+          }
+        }
+        // TODO devise way of merging new groups onto (identical) existing groups when they were used as input to service
+        // delete all existing groups 
+        if (contextAl.getGroups()!=null)
+        {
+          contextAl.deleteAllGroups();
+        }
         context.addAlignment(contextAl);
       }