You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2012/03/23 15:52:52 UTC
svn commit: r1304387 - in /sling/trunk/bundles/jcr/resource/src:
main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java
Author: justin
Date: Fri Mar 23 14:52:52 2012
New Revision: 1304387
URL: http://svn.apache.org/viewvc?rev=1304387&view=rev
Log:
SLING-2446 - adding BigDecimal property support to JcrPropertyResource
Modified:
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java
Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java?rev=1304387&r1=1304386&r2=1304387&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java Fri Mar 23 14:52:52 2012
@@ -19,6 +19,7 @@
package org.apache.sling.jcr.resource.internal.helper.jcr;
import java.io.InputStream;
+import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Iterator;
@@ -39,8 +40,8 @@ import org.slf4j.LoggerFactory;
@Adaptable(adaptableClass = Resource.class, adapters = {
@Adapter(value = { Item.class, Property.class, Value.class, String.class, Boolean.class, Long.class,
- Double.class, Calendar.class, InputStream.class, Value[].class, String[].class,
- Boolean[].class, Long[].class, Double[].class }),
+ Double.class, BigDecimal.class, Calendar.class, InputStream.class, Value[].class, String[].class,
+ Boolean[].class, Long[].class, Double[].class, BigDecimal[].class }),
@Adapter(value = Node.class, condition = "If the resource is a JcrPropertyResource and the property is a reference or weak reference property.") })
public class JcrPropertyResource extends JcrItemResource {
@@ -103,6 +104,9 @@ public class JcrPropertyResource extends
} else if (type == Double.class) {
return (AdapterType) new Double(getProperty().getDouble());
+ } else if (type == BigDecimal.class) {
+ return (AdapterType) getProperty().getDecimal();
+
} else if (type == Calendar.class) {
return (AdapterType) getProperty().getDate();
@@ -161,6 +165,17 @@ public class JcrPropertyResource extends
}
return (AdapterType)new Double[] {getProperty().getDouble()};
+ } else if (type == BigDecimal[].class) {
+ if ( getProperty().getDefinition().isMultiple() ) {
+ final Value[] values = getProperty().getValues();
+ final BigDecimal[] result = new BigDecimal[values.length];
+ for(int i=0; i<values.length; i++) {
+ result[i] = values[i].getDecimal();
+ }
+ return (AdapterType)result;
+ }
+ return (AdapterType)new BigDecimal[] {getProperty().getDecimal()};
+
} else if (type == Calendar[].class) {
if ( getProperty().getDefinition().isMultiple() ) {
final Value[] values = getProperty().getValues();
Modified: sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java?rev=1304387&r1=1304386&r2=1304387&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java (original)
+++ sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResourceTest.java Fri Mar 23 14:52:52 2012
@@ -21,6 +21,7 @@ package org.apache.sling.jcr.resource.in
import static org.junit.Assert.assertEquals;
import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map.Entry;
@@ -53,6 +54,7 @@ public class JcrPropertyResourceTest {
put("string with ümlaut", PropertyType.STRING);
put(true, PropertyType.BOOLEAN);
put(1000L, PropertyType.LONG);
+ put(BigDecimal.TEN, PropertyType.DECIMAL);
}};
final ResourceResolver resolver = this.context.mock(ResourceResolver.class);