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;
+ }
+ }
}
Show replies by date