Merge branch 'JAL-3878_ws-overhaul-3' into mmw/Release_2_12_ws_merge
[jalview.git] / src / jalview / ws2 / params / ArgumentBean.java
diff --git a/src/jalview/ws2/params/ArgumentBean.java b/src/jalview/ws2/params/ArgumentBean.java
new file mode 100644 (file)
index 0000000..65b29bb
--- /dev/null
@@ -0,0 +1,82 @@
+package jalview.ws2.params;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import jalview.ws.params.ArgumentI;
+
+/**
+ * A minimal bean implementing {@link ArgumentI} which stores argument
+ * name, label and value. It's mainly used to marshal and unmarshal
+ * parameter values of a preset.
+ * 
+ * @author mmwarowny
+ *
+ */
+@XmlRootElement(name = "parameter")
+class ArgumentBean implements ArgumentI
+{
+  String name;
+
+  String label;
+
+  String value;
+
+  ArgumentBean()
+  {
+    this.name = null;
+    this.label = null;
+    this.value = null;
+  }
+
+  ArgumentBean(ArgumentI copyof)
+  {
+    this.name = copyof.getName();
+    this.label = copyof.getLabel();
+    this.value = copyof.getValue();
+  }
+
+  @XmlAttribute
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+
+  @XmlElement
+  @Override
+  public String getLabel()
+  {
+    return label;
+  }
+
+  public void setLabel(String label)
+  {
+    this.label = label;
+  }
+
+  @XmlElement
+  @Override
+  public String getValue()
+  {
+    return value;
+  }
+
+  @Override
+  public void setValue(String selectedItem)
+  {
+    this.value = selectedItem;
+  }
+
+  @Override
+  public String toString()
+  {
+    return String.format("Parameter(name=%s, value=%s)", name, value);
+  }
+}
\ No newline at end of file