[exo-jcr-commits] exo-jcr SVN: r4693 - in ws/trunk/exo.ws.frameworks.json/src: test/java/org/exoplatform/ws/frameworks/json/impl and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Aug 3 06:23:09 EDT 2011


Author: aparfonov
Date: 2011-08-03 06:23:08 -0400 (Wed, 03 Aug 2011)
New Revision: 4693

Modified:
   ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/StringValue.java
   ws/trunk/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/ObjectBuilderTest.java
Log:
EXOJCR-1466

Modified: ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/StringValue.java
===================================================================
--- ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/StringValue.java	2011-08-03 08:00:53 UTC (rev 4692)
+++ ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/StringValue.java	2011-08-03 10:23:08 UTC (rev 4693)
@@ -62,6 +62,61 @@
       return value;
    }
 
+   @Override
+   public boolean getBooleanValue()
+   {
+      return Boolean.parseBoolean(value);
+   }
+
+   @Override
+   public Number getNumberValue()
+   {
+      try
+      {
+         return Double.parseDouble(value);
+      }
+      catch (NumberFormatException e)
+      {
+         return 0;
+      }
+   }
+
+   @Override
+   public byte getByteValue()
+   {
+      return getNumberValue().byteValue();
+   }
+
+   @Override
+   public short getShortValue()
+   {
+      return getNumberValue().shortValue();
+   }
+
+   @Override
+   public int getIntValue()
+   {
+      return getNumberValue().intValue();
+   }
+
+   @Override
+   public long getLongValue()
+   {
+      return getNumberValue().longValue();
+   }
+
+   @Override
+   public float getFloatValue()
+   {
+      return getNumberValue().floatValue();
+   }
+
+   @Override
+   public double getDoubleValue()
+   {
+      return getNumberValue().doubleValue();
+   }
+
    /**
     * {@inheritDoc}
     */

Modified: ws/trunk/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/ObjectBuilderTest.java
===================================================================
--- ws/trunk/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/ObjectBuilderTest.java	2011-08-03 08:00:53 UTC (rev 4692)
+++ ws/trunk/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/ObjectBuilderTest.java	2011-08-03 10:23:08 UTC (rev 4693)
@@ -377,4 +377,104 @@
    public static class ForTestClass001
    {
    }
+
+   public void testConvertFromStringValue() throws Exception
+   {
+      String jsonString =
+         "{\"b\":\"1\", \"s\":\"2\" , \"i\":\"3\", \"l\":\"4\",\"f\":\"1.05\",\"d\":\"1.1\",\"bool\":\"true\"}";
+      JsonParser jsonParser = new JsonParserImpl();
+      JsonDefaultHandler handler = new JsonDefaultHandler();
+      jsonParser.parse(new ByteArrayInputStream(jsonString.getBytes()), handler);
+      JsonValue jsonValue = handler.getJsonObject();
+      //System.out.println(jsonValue);
+      ConvertFromStringValuBean o = ObjectBuilder.createObject(ConvertFromStringValuBean.class, jsonValue);
+      assertEquals(1, o.getB());
+      assertEquals(2, o.getS());
+      assertEquals(3, o.getI());
+      assertEquals(4L, o.getL());
+      assertEquals(1.05F, o.getF());
+      assertEquals(1.1D, o.getD());
+      assertEquals(true, o.isBool());
+   }
+
+   public static class ConvertFromStringValuBean
+   {
+      private byte b;
+      private short s;
+      private int i;
+      private long l;
+      private float f;
+      private double d;
+      private boolean bool;
+
+      public byte getB()
+      {
+         return b;
+      }
+
+      public void setB(byte b)
+      {
+         this.b = b;
+      }
+
+      public short getS()
+      {
+         return s;
+      }
+
+      public void setS(short s)
+      {
+         this.s = s;
+      }
+
+      public int getI()
+      {
+         return i;
+      }
+
+      public void setI(int i)
+      {
+         this.i = i;
+      }
+
+      public long getL()
+      {
+         return l;
+      }
+
+      public void setL(long l)
+      {
+         this.l = l;
+      }
+
+      public float getF()
+      {
+         return f;
+      }
+
+      public void setF(float f)
+      {
+         this.f = f;
+      }
+
+      public double getD()
+      {
+         return d;
+      }
+
+      public void setD(double d)
+      {
+         this.d = d;
+      }
+
+      public boolean isBool()
+      {
+         return bool;
+      }
+
+      public void setBool(boolean bool)
+      {
+         this.bool = bool;
+      }
+   }
 }



More information about the exo-jcr-commits mailing list