Uploaded image for project: 'Runtime'
  1. Runtime
  2. RUNTIME-257

Simplify use of Java enum for types in ParameterHelper

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • 2.0.0 M3
    • 1.1.8
    • Kernel
    • None

      Current ParameterHelper has complex typeToString() and stringToType() functions.

      The proposed patch for simplifying this behaviour:

      Index: main/kernel/src/org/ametys/runtime/util/parameter/ParameterHelper.java
      ===================================================================
      --- main/kernel/src/org/ametys/runtime/util/parameter/ParameterHelper.java	(revision 504)
      +++ main/kernel/src/org/ametys/runtime/util/parameter/ParameterHelper.java	(working copy)
      @@ -42,29 +42,9 @@
               /** binary values */
               BINARY
           }
      -    /** Constants to type values as string : boolean */
      -    public static final String TYPE_BOOLEAN_LABEL = "boolean";
      -
      -    /** Constants to type values as string : string */
      -    public static final String TYPE_STRING_LABEL = "string";
      -
      -    /** Constants to type values as string : password */
      -    public static final String TYPE_PASSWORD_LABEL = "password";
      -
      -    /** Constants to type values as string : long */
      -    public static final String TYPE_LONG_LABEL = "long";
      -
      -    /** Constants to type values as string : double */
      -    public static final String TYPE_DOUBLE_LABEL = "double";
      -
      -    /** Constants to type values as string : date */
      -    public static final String TYPE_DATE_LABEL = "date";
       
           /** Constants to set date format */
           public static final String TYPE_DATE_TYPE = "yyyy-MM-dd'T'HH:mm";
      -    
      -    /** Constants to type values as string : binary */
      -    public static final String TYPE_BINARY_LABEL = "binary";
       
           // Logger for traces
           private static Logger _logger = LoggerFactory.getLoggerFor(ParameterHelper.class);
      @@ -83,38 +63,7 @@
            */
           public static String typeToString(TYPE type)
           {
      -        if (type == TYPE.BOOLEAN)
      -        {
      -            return TYPE_BOOLEAN_LABEL;
      -        }
      -        else if (type == TYPE.DATE)
      -        {
      -            return TYPE_DATE_LABEL;
      -        }
      -        else if (type == TYPE.DOUBLE)
      -        {
      -            return TYPE_DOUBLE_LABEL;
      -        }
      -        else if (type == TYPE.LONG)
      -        {
      -            return TYPE_LONG_LABEL;
      -        }
      -        else if (type == TYPE.STRING)
      -        {
      -            return TYPE_STRING_LABEL;
      -        }
      -        else if (type == TYPE.PASSWORD)
      -        {
      -            return TYPE_PASSWORD_LABEL;
      -        }
      -        else if (type == TYPE.BINARY)
      -        {
      -            return TYPE_BINARY_LABEL;
      -        }
      -        else
      -        {
      -            throw new IllegalArgumentException("The value '" + type + "' is unknown for a config parameter type");
      -        }
      +        return type.name().toLowerCase();
           }
           
           /**
      @@ -126,35 +75,11 @@
            */
           public static TYPE stringToType(String type)
           {
      -        if (TYPE_BOOLEAN_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.BOOLEAN;
      -        }
      -        else if (TYPE_STRING_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.STRING;
      -        }
      -        else if (TYPE_PASSWORD_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.PASSWORD;
      -        }
      -        else if (TYPE_LONG_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.LONG;
      -        }
      -        else if (TYPE_DOUBLE_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.DOUBLE;
      -        }
      -        else if (TYPE_DATE_LABEL.equalsIgnoreCase(type))
      -        {
      -            return TYPE.DATE;
      -        }
      -        else if (TYPE_BINARY_LABEL.equalsIgnoreCase(type))
      +        try
               {
      -            return TYPE.BINARY;
      +            return TYPE.valueOf(type.toUpperCase());
               }
      -        else
      +        catch (IllegalArgumentException e)
               {
                   throw new IllegalArgumentException("The type '" + type + "' is unknown for config parameters");
               }
      @@ -205,10 +130,6 @@
                   {
                       return null;
                   }
      -            else
      -            {
      -                return null;
      -            }
               }
               catch (Exception nfe)
               {
      @@ -220,8 +141,8 @@
                   {
                       _logger.debug("Failed to cast empty string to type '" + typeToString(type) + "'. Null object will be used.", nfe);
                   }
      -            return null;
               }
      +        return null;
           }
           
       
      

            Unassigned Unassigned
            yabon Sébastien Launay (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: