From ab6404f43fc5f9d6a9107307ee173d831a1397be Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Wed, 8 Apr 2015 13:40:49 +0300 Subject: [PATCH] Add DesignerAttributeHelper.readAttribute with default value (#17416) Change-Id: Ic746e761942c3d801c8e1c71bd5866bbd5daeaf4 --- .../declarative/DesignAttributeHandler.java | 80 ++++++++++++------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java b/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java index 215afd5041..be920a959e 100644 --- a/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java +++ b/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java @@ -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 void writeAttribute(String attribute, + Attributes attributes, T value, T defaultValue, Class 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 readAttribute(String attribute, Attributes attributes, + T defaultValue, Class 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 readAttribute(String attribute, Attributes attributes, Class 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 void writeAttribute(String attribute, - Attributes attributes, T value, T defaultValue, Class 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 setPrimaryStyleName the @@ -426,5 +449,4 @@ public class DesignAttributeHandler implements Serializable { return (methods != null && methods.length > 1) ? methods[1] : null; } } - } -- 2.39.5