JAL-633 simple concrete parameter and option objects for use within Jalview
[jalview.git] / src / jalview / ws / params / simple / IntegerParameter.java
diff --git a/src/jalview/ws/params/simple/IntegerParameter.java b/src/jalview/ws/params/simple/IntegerParameter.java
new file mode 100644 (file)
index 0000000..29df95d
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * 
+ */
+package jalview.ws.params.simple;
+
+import jalview.ws.params.ParameterI;
+import jalview.ws.params.ValueConstrainI;
+
+import compbio.metadata.ValueConstrain.Type;
+
+/**
+ * @author jimp
+ *
+ */
+public class IntegerParameter extends Option implements ParameterI 
+{
+  int defval;
+  int min,max;
+  public ValueConstrainI getValidValue() {
+    return new ValueConstrainI()
+    {
+      
+      @Override
+      public ValueType getType()
+      {
+        return ValueType.Integer;
+      }
+      
+      @Override
+      public Number getMin()
+      {
+        if (min<max)
+        {
+        return min;
+        } else {
+          return null;
+        }
+      }
+      
+      @Override
+      public Number getMax()
+      {
+        if (min<max)
+        {
+          return max;
+        } else {
+          return null;
+        }
+      }
+    };
+  }
+  public IntegerParameter(IntegerParameter parm)
+  {
+    super(parm);
+    max = parm.max;
+    min = parm.min;
+  }
+
+  public IntegerParameter(String name, String description, boolean required, int defValue,
+          int min, int max)
+  {
+    super(name, description, required, String.valueOf(defValue), null, null, null);
+    defval = defValue;
+    this.min = min;
+    this.max = max;
+  }
+
+  public IntegerParameter(String name, String description, boolean required, int defValue, int value,
+          int min, int max)
+  {
+    super(name, description, required, String.valueOf(defValue), String.valueOf(value), null, null);
+    defval = defValue;
+    this.min = min;
+    this.max = max;
+  }
+  @Override
+  public IntegerParameter copy()
+  {
+    return new IntegerParameter(this);    
+  }
+  
+}