Refactored exception dialog.
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / parameter / StringParameter.java
index 533763d..7a72cf3 100755 (executable)
@@ -1,53 +1,45 @@
 /*
- * Svjatoslav Commons - shared library of common functionality.
- * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
+ * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
  */
-
 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
 
 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
 
-public class StringParameter extends Parameter {
+public class StringParameter extends Parameter<String, StringParameter> {
 
-       public StringParameter(final String description) {
-               super(description, ArgumentCount.SINGLE);
-       }
+    public final String defaultValue;
 
-       @Override
-       public StringParameter addAliases(final String... aliasArray) {
-               super.addAliasesProtected(aliasArray);
-               return this;
-       }
+    public StringParameter(final String description) {
+        super(description, ArgumentCount.SINGLE);
+        defaultValue = null;
+    }
+    public StringParameter(final String description, String defaultValue) {
+        super(description, ArgumentCount.SINGLE);
+        this.defaultValue = defaultValue;
+        this.setSpecified(true);
+    }
 
-       @Override
-       public java.lang.String describeFormat() {
-               return "string";
-       }
+    @Override
+    public java.lang.String describeFormat() {
+        return "string";
+    }
 
-       @Override
-       public String getValue() {
+    @Override
+    public String getValue() {
 
-               if (arguments.size() != 1)
-                       throw new RuntimeException("Parameter " + description
-                                       + " shall have exactly 1 argument.");
+        if (arguments.isEmpty() && (defaultValue != null)) return defaultValue;
 
-               return arguments.get(0);
-       }
+        if (arguments.size() == 1) return arguments.get(0);
 
-       @Override
-       public StringParameter setMandatory() {
-               setMandatoryProtected();
-               return this;
-       }
+        throw new RuntimeException("Parameter " + description
+                + " shall have exactly 1 argument.");
+    }
 
-       @Override
-       public boolean validate(final java.lang.String value) {
-               return true;
-       }
+    @Override
+    public boolean validate(final java.lang.String value) {
+        return true;
+    }
 
 }