]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add DesignerAttributeHelper.readAttribute with default value (#17416)
authorTeemu Suo-Anttila <teemusa@vaadin.com>
Wed, 8 Apr 2015 10:40:49 +0000 (13:40 +0300)
committerMarkus Koivisto <markus@vaadin.com>
Wed, 15 Apr 2015 08:41:16 +0000 (11:41 +0300)
Change-Id: Ic746e761942c3d801c8e1c71bd5866bbd5daeaf4

server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java

index 215afd50412e5029c82f074aab211de4e331b7ae..be920a959e160d2b2bb80fc2ea3e10be4f79edda 100644 (file)
@@ -219,17 +219,67 @@ public class DesignAttributeHandler implements Serializable {
     }
 
     /**
-     * Reads the given attribute from a set of attributes.
+     * Writes the given attribute value to a set of attributes if it differs
+     * from the default attribute value.
+     * 
+     * @param attribute
+     *            the attribute key
+     * @param attributes
+     *            the set of attributes where the new attribute is written
+     * @param value
+     *            the attribute value
+     * @param defaultValue
+     *            the default attribute value
+     * @param inputType
+     *            the type of the input value
+     */
+    public static <T> void writeAttribute(String attribute,
+            Attributes attributes, T value, T defaultValue, Class<T> inputType) {
+        if (!getFormatter().canConvert(inputType)) {
+            throw new IllegalArgumentException("input type: "
+                    + inputType.getName() + " not supported");
+        }
+        if (!SharedUtil.equals(value, defaultValue)) {
+            String attributeValue = toAttributeValue(inputType, value);
+            attributes.put(attribute, attributeValue);
+        }
+    }
+
+    /**
+     * Reads the given attribute from a set of attributes. If attribute does not
+     * exist return a given default value.
      * 
      * @param attribute
      *            the attribute key
      * @param attributes
      *            the set of attributes to read from
+     * @param defaultValue
+     *            the default value to return if attribute does not exist
      * @param outputType
      *            the output type for the attribute
      * @return the attribute value or the default value if the attribute is not
      *         found
      */
+    public static <T> T readAttribute(String attribute, Attributes attributes,
+            T defaultValue, Class<T> outputType) {
+        T value = readAttribute(attribute, attributes, outputType);
+        if (value != null) {
+            return value;
+        }
+        return defaultValue;
+    }
+
+    /**
+     * Reads the given attribute from a set of attributes.
+     * 
+     * @param attribute
+     *            the attribute key
+     * @param attributes
+     *            the set of attributes to read from
+     * @param outputType
+     *            the output type for the attribute
+     * @return the attribute value or null
+     */
     public static <T> T readAttribute(String attribute, Attributes attributes,
             Class<T> outputType) {
         if (!getFormatter().canConvert(outputType)) {
@@ -249,33 +299,6 @@ public class DesignAttributeHandler implements Serializable {
         }
     }
 
-    /**
-     * Writes the given attribute value to a set of attributes if it differs
-     * from the default attribute value.
-     * 
-     * @param attribute
-     *            the attribute key
-     * @param attributes
-     *            the set of attributes where the new attribute is written
-     * @param value
-     *            the attribute value
-     * @param defaultValue
-     *            the default attribute value
-     * @param inputType
-     *            the type of the input value
-     */
-    public static <T> void writeAttribute(String attribute,
-            Attributes attributes, T value, T defaultValue, Class<T> inputType) {
-        if (!getFormatter().canConvert(inputType)) {
-            throw new IllegalArgumentException("input type: "
-                    + inputType.getName() + " not supported");
-        }
-        if (!SharedUtil.equals(value, defaultValue)) {
-            String attributeValue = toAttributeValue(inputType, value);
-            attributes.put(attribute, attributeValue);
-        }
-    }
-
     /**
      * Returns the design attribute name corresponding the given method name.
      * For example given a method name <code>setPrimaryStyleName</code> the
@@ -426,5 +449,4 @@ public class DesignAttributeHandler implements Serializable {
             return (methods != null && methods.length > 1) ? methods[1] : null;
         }
     }
-
 }