]> source.dussan.org Git - gwtquery.git/commitdiff
Adding getTextAsBoolean and getTextAsEnum to xmlbuilders
authorManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 26 Nov 2012 09:04:48 +0000 (10:04 +0100)
committerManuel Carrasco Moñino <manuel.carrasco.m@gmail.com>
Mon, 26 Nov 2012 09:04:48 +0000 (10:04 +0100)
gwtquery-core/src/main/java/com/google/gwt/query/client/builders/XmlBuilder.java
gwtquery-core/src/main/java/com/google/gwt/query/client/builders/XmlBuilderBase.java

index 8c35e5cb2eb7e8ae0f308f997d2dfc0ad72bf4b9..dfb110b452691ed169c479e97912814d839aff4b 100644 (file)
@@ -68,4 +68,14 @@ public interface XmlBuilder {
    */\r
   Date getTextAsDate();\r
 \r
+  /**\r
+   * Returns whether the text content of the element is true or false. \r
+   * It is false when the string matches false, off, 0 or empty. \r
+   */\r
+  boolean getTextAsBoolean();\r
+  \r
+  /**\r
+   * Returns the Enum value of the text content of the element.\r
+   */\r
+  <T extends Enum<T>> T getTextAsEnum(Class<T> clazz);\r
 }\r
index a2062509b48c67d4e6c3178233c10eecc8171306..24582c53dfc0a6a36de90a2c2fc04cfad1f89a89 100644 (file)
@@ -69,18 +69,15 @@ public abstract class XmlBuilderBase<J extends XmlBuilderBase<?>> implements Xml
     return g.attr(n);
   }
   
-  @Override
   public String getText() {
     return g.text();
   }
   
-  @Override
   public double getTextAsNumber() {
     String t =  g.text().replaceAll("[^\\d\\.\\-]", "");
     return t.isEmpty() ? 0 : Double.parseDouble(t);
   }
   
-  @Override
   public Date getTextAsDate() {
     String t =  g.text().trim();
     if (t.matches("\\d+")) {
@@ -90,6 +87,16 @@ public abstract class XmlBuilderBase<J extends XmlBuilderBase<?>> implements Xml
     }
   }
   
+  public boolean getTextAsBoolean() {
+    String t =  g.text().trim().toLowerCase();
+    return !t.matches("^(|false|off|0)$");
+  }
+  
+  public <T extends Enum<T>> T getTextAsEnum(Class<T> clazz) {
+    String t =  g.text().trim();
+    return Enum.valueOf(clazz, t);
+  }
+  
   @SuppressWarnings("unchecked")
   public J load(Object o) {
     assert o == null || o instanceof JavaScriptObject && JsUtils.isElement((JavaScriptObject)o) || o instanceof String;
@@ -120,7 +127,6 @@ public abstract class XmlBuilderBase<J extends XmlBuilderBase<?>> implements Xml
   }
 
   @SuppressWarnings("unchecked")
-  @Override
   public <T> T setText(String t) {
     g.text(t);
     return (T)this;