You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/04/25 19:33:23 UTC
git commit: ISIS-421: RO TCK tests, bigdecimal/integer format
Repository: isis
Updated Branches:
refs/heads/master 094379501 -> 42f33f6a2
ISIS-421: RO TCK tests, bigdecimal/integer format
Render format as "big-decimal(p,s)" according to BigDecimalValueFacet. Render "big-integer(18)" for big integers (hard-coded).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/42f33f6a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/42f33f6a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/42f33f6a
Branch: refs/heads/master
Commit: 42f33f6a21a29c16ca3f50b6cc373af81fe923b4
Parents: 0943795
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Apr 25 18:33:10 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Apr 25 18:33:10 2014 +0100
----------------------------------------------------------------------
.../BigDecimalFacetDerivedFromJdoColumn.java | 10 ++---
.../prop/column/BigDecimalFacetFallback.java | 6 +--
.../domainobjects/JsonValueEncoder.java | 6 +--
.../ObjectPropertyReprRenderer.java | 36 ++++++++++++++++-
...WithJdkProperties_thenRepresentation_ok.java | 10 ++---
...henArgsValid_thenMultiplePropertyUpdate.java | 4 +-
...Put_whenArgValid_thenPropertyUpdated_ok.java | 4 +-
...eterFromJavaxValidationDigitsAnnotation.java | 14 +++----
...ertyFromJavaxValidationDigitsAnnotation.java | 14 +++----
.../value/bigdecimal/BigDecimalValueFacet.java | 12 +++++-
.../BigDecimalValueFacetAbstract.java | 42 ++++++++++++++++++++
.../BigDecimalValueSemanticsProvider.java | 8 +++-
.../core/tck/dom/scalars/JdkValuedEntity.java | 3 +-
.../fixture/scalars/JdkValuedEntityFixture.java | 2 +-
14 files changed, 130 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
index 9884ce3..5143852 100644
--- a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
+++ b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetDerivedFromJdoColumn.java
@@ -19,12 +19,12 @@
package org.apache.isis.objectstore.jdo.metamodel.facets.prop.column;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacet;
+import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
-public class BigDecimalFacetDerivedFromJdoColumn extends FacetAbstract implements BigDecimalValueFacet {
+public class BigDecimalFacetDerivedFromJdoColumn extends BigDecimalValueFacetAbstract {
private final Integer length;
private final Integer scale;
@@ -33,14 +33,14 @@ public class BigDecimalFacetDerivedFromJdoColumn extends FacetAbstract implement
return BigDecimalValueFacet.class;
}
- public BigDecimalFacetDerivedFromJdoColumn(final FacetHolder holder, final Integer length, final Integer scale) {
+ public BigDecimalFacetDerivedFromJdoColumn(final FacetHolder holder, final Integer precision, final Integer scale) {
super(BigDecimalFacetDerivedFromJdoColumn.type(), holder, Derivation.NOT_DERIVED);
- this.length = length;
+ this.length = precision;
this.scale = scale;
}
@Override
- public Integer getLength() {
+ public Integer getPrecision() {
return length;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
index 2e11b3e..45b57ba 100644
--- a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
+++ b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/BigDecimalFacetFallback.java
@@ -19,13 +19,13 @@
package org.apache.isis.objectstore.jdo.metamodel.facets.prop.column;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacet;
+import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueSemanticsProvider;
-public class BigDecimalFacetFallback extends FacetAbstract implements BigDecimalValueFacet {
+public class BigDecimalFacetFallback extends BigDecimalValueFacetAbstract {
public static Class<? extends Facet> type() {
return BigDecimalValueFacet.class;
@@ -36,7 +36,7 @@ public class BigDecimalFacetFallback extends FacetAbstract implements BigDecimal
}
@Override
- public Integer getLength() {
+ public Integer getPrecision() {
return BigDecimalValueSemanticsProvider.DEFAULT_LENGTH;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
index 2afd9cd..d5530a3 100644
--- a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
@@ -365,7 +365,7 @@ public final class JsonValueEncoder {
}
});
- putConverter(new JsonValueConverter("big-integer", "javamathbiginteger", BigInteger.class){
+ putConverter(new JsonValueConverter("big-integer(18)", "javamathbiginteger", BigInteger.class){
@Override
public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
@@ -430,7 +430,7 @@ public final class JsonValueEncoder {
} else {
repr.mapPut("value", obj);
}
- appendFormats(repr, format != null? format: this.format, xIsisFormat);
+ appendFormats(repr, format != null ? format : this.format, xIsisFormat);
}
});
@@ -522,7 +522,7 @@ public final class JsonValueEncoder {
ISODateTimeFormat.basicDateTimeNoMillis().withZoneUTC(),
ISODateTimeFormat.basicDateTime().withZoneUTC(),
JsonRepresentation.yyyyMMddTHHmmssZ.withZoneUTC()
- );
+ );
@Override
public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index 37a123b..02a32de 100644
--- a/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/component/viewer/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -23,11 +23,15 @@ import org.codehaus.jackson.node.NullNode;
import org.apache.isis.applib.annotation.Render.Type;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.members.resolve.RenderFacet;
import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacet;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -70,7 +74,22 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
final ValueFacet valueFacet = spec.getFacet(ValueFacet.class);
if (valueFacet != null) {
- String format = null; // TODO
+ String format = null;
+ final Class<?> specClass = spec.getCorrespondingClass();
+ if(specClass == java.math.BigDecimal.class) {
+ // look for facet on member, else on the value's spec
+ final BigDecimalValueFacet bigDecimalValueFacet =
+ getFacet(BigDecimalValueFacet.class,
+ objectMember,
+ valueAdapter != null? valueAdapter.getSpecification(): null);
+ if(bigDecimalValueFacet != null) {
+ final Integer precision = bigDecimalValueFacet.getPrecision();
+ final Integer scale = bigDecimalValueFacet.getScale();
+ format = String.format("big-decimal(%d,%d)", precision, scale);
+ }
+ } else if(specClass == java.math.BigInteger.class) {
+ // TODO: need to extend BigIntegerValueFacet similar to BigDecimalValueFacet
+ }
JsonValueEncoder.appendValueAndFormat(spec, valueAdapter, representation, format);
return;
}
@@ -99,8 +118,21 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
}
}
+ private static <T extends Facet> T getFacet(Class<T> facetType, FacetHolder... holders) {
+ for (FacetHolder holder : holders) {
+ if(holder == null) {
+ continue;
+ }
+ final T facet = holder.getFacet(facetType);
+ if(facet != null) {
+ return facet;
+ }
+ }
+ return null;
+ }
+
+
-
// ///////////////////////////////////////////////////
// details link
// ///////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Get_givenEntityWithJdkProperties_thenRepresentation_ok.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Get_givenEntityWithJdkProperties_thenRepresentation_ok.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Get_givenEntityWithJdkProperties_thenRepresentation_ok.java
index 4ccf999..06384cf 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Get_givenEntityWithJdkProperties_thenRepresentation_ok.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Get_givenEntityWithJdkProperties_thenRepresentation_ok.java
@@ -68,7 +68,7 @@ public class Get_givenEntityWithJdkProperties_thenRepresentation_ok {
property = domainObjectRepr.getProperty("bigDecimalProperty");
assertThat(property.getMemberType(), is("property"));
- assertThat(property.getFormat(), is("big-decimal"));
+ assertThat(property.getFormat(), is("big-decimal(30,10)"));
assertThat(property.getXIsisFormat(), is("javamathbigdecimal"));
scalarRepr = property.getRepresentation("value").as(ScalarValueRepresentation.class);
assertThat(scalarRepr.isString(), is(true));
@@ -77,7 +77,7 @@ public class Get_givenEntityWithJdkProperties_thenRepresentation_ok {
property = domainObjectRepr.getProperty("bigDecimalProperty2");
assertThat(property.getMemberType(), is("property"));
- assertThat(property.getFormat(), is("big-decimal"));
+ assertThat(property.getFormat(), is("big-decimal(18,2)"));
assertThat(property.getXIsisFormat(), is("javamathbigdecimal"));
scalarRepr = property.getRepresentation("value").as(ScalarValueRepresentation.class);
assertThat(scalarRepr.isString(), is(true));
@@ -86,16 +86,16 @@ public class Get_givenEntityWithJdkProperties_thenRepresentation_ok {
property = domainObjectRepr.getProperty("bigIntegerProperty");
assertThat(property.getMemberType(), is("property"));
- assertThat(property.getFormat(), is("big-integer"));
+ assertThat(property.getFormat(), is("big-integer(18)"));
assertThat(property.getXIsisFormat(), is("javamathbiginteger"));
scalarRepr = property.getRepresentation("value").as(ScalarValueRepresentation.class);
assertThat(scalarRepr.isString(), is(true));
BigInteger bigInteger = scalarRepr.asBigInteger(property.getFormat());
- assertThat(bigInteger, is(new BigInteger("12345678901234567890")));
+ assertThat(bigInteger, is(new BigInteger("123456789012345678")));
property = domainObjectRepr.getProperty("bigIntegerProperty2");
assertThat(property.getMemberType(), is("property"));
- assertThat(property.getFormat(), is("big-integer"));
+ assertThat(property.getFormat(), is("big-integer(18)"));
scalarRepr = property.getRepresentation("value").as(ScalarValueRepresentation.class);
assertThat(scalarRepr.isString(), is(true));
BigInteger bigInteger2 = scalarRepr.asBigInteger(property.getFormat());
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Put_whenArgsValid_thenMultiplePropertyUpdate.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Put_whenArgsValid_thenMultiplePropertyUpdate.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Put_whenArgsValid_thenMultiplePropertyUpdate.java
index 5886833..3643a8e 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Put_whenArgsValid_thenMultiplePropertyUpdate.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Put_whenArgsValid_thenMultiplePropertyUpdate.java
@@ -120,7 +120,7 @@ public class Put_whenArgsValid_thenMultiplePropertyUpdate {
final JsonRepresentation argRepr = updateLink.getArguments();
final BigDecimal bd = new BigDecimal("12345678901234567.789");
- final BigInteger bi = new BigInteger("12345678901234567890");
+ final BigInteger bi = new BigInteger("123456789012345678");
final java.sql.Date sqld = new java.sql.Date(new DateTime(2014,5,1, 0,0, DateTimeZone.UTC).getMillis());
final java.sql.Time sqlt = new java.sql.Time(13,0,0);
final java.sql.Timestamp sqlts = new java.sql.Timestamp(114,4,1,13,0,0,0);
@@ -142,7 +142,7 @@ public class Put_whenArgsValid_thenMultiplePropertyUpdate {
final DomainObjectRepresentation afterResp = result.getEntity().as(DomainObjectRepresentation.class);
- assertThat(afterResp.getProperty("bigDecimalProperty").getBigDecimal("value"), is(new BigDecimal("12345678901234567.789")));
+ assertThat(afterResp.getProperty("bigDecimalProperty").getBigDecimal("value"), is(new BigDecimal("12345678901234567.7890000000"))); // big-decimal(30,10)
assertThat(afterResp.getProperty("bigIntegerProperty").getBigInteger("value"), is(bi));
assertThat(afterResp.getProperty("javaSqlDateProperty").getDate("value"), is((java.util.Date)sqld));
assertThat(afterResp.getProperty("javaSqlTimeProperty").getTime("value"), is((java.util.Date)sqlt));
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/property/Put_whenArgValid_thenPropertyUpdated_ok.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/property/Put_whenArgValid_thenPropertyUpdated_ok.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/property/Put_whenArgValid_thenPropertyUpdated_ok.java
index ebd5cbf..a24c2e3 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/property/Put_whenArgValid_thenPropertyUpdated_ok.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/property/Put_whenArgValid_thenPropertyUpdated_ok.java
@@ -135,10 +135,10 @@ public class Put_whenArgValid_thenPropertyUpdated_ok {
final BigDecimal bd = new BigDecimal("12345678901234567.789");
modifyLink = getObjectPropertyReprModifyLink("JDKV", "29", "bigDecimalProperty");
argRepr = modifyLink.getArguments().mapPut("value", bd);
- assertThat(followedRepr(modifyLink,argRepr).getBigDecimal("value"), is(new BigDecimal("12345678901234567.789")));
+ assertThat(followedRepr(modifyLink,argRepr).getBigDecimal("value"), is(new BigDecimal("12345678901234567.7890000000"))); // big-decimal(30,10)
// big integer
- final BigInteger bi = new BigInteger("12345678901234567890");
+ final BigInteger bi = new BigInteger("123456789012345678");
modifyLink = getObjectPropertyReprModifyLink("JDKV", "29", "bigIntegerProperty");
argRepr = modifyLink.getArguments().mapPut("value", bi);
assertThat(followedRepr(modifyLink,argRepr).getBigInteger("value"), is(bi));
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/javaxvaldigits/BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/javaxvaldigits/BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/javaxvaldigits/BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.java
index d204c02..e90f2a4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/javaxvaldigits/BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/param/javaxvaldigits/BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.java
@@ -19,28 +19,28 @@
package org.apache.isis.core.progmodel.facets.param.javaxvaldigits;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacet;
+import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
-public class BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation extends FacetAbstract implements BigDecimalValueFacet {
+public class BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation extends BigDecimalValueFacetAbstract {
- private final Integer length;
+ private final Integer precision;
private final Integer scale;
public static Class<? extends Facet> type() {
return BigDecimalValueFacet.class;
}
- public BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer length, final Integer scale) {
+ public BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer precision, final Integer scale) {
super(BigDecimalFacetForParameterFromJavaxValidationDigitsAnnotation.type(), holder, Derivation.NOT_DERIVED);
- this.length = length;
+ this.precision = precision;
this.scale = scale;
}
@Override
- public Integer getLength() {
- return length;
+ public Integer getPrecision() {
+ return precision;
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/javaxvaldigits/BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/javaxvaldigits/BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/javaxvaldigits/BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.java
index 404a160..3b41783 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/javaxvaldigits/BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/javaxvaldigits/BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.java
@@ -19,29 +19,29 @@
package org.apache.isis.core.progmodel.facets.properties.javaxvaldigits;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacet;
+import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueFacetAbstract;
-public class BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation extends FacetAbstract implements BigDecimalValueFacet {
+public class BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation extends BigDecimalValueFacetAbstract {
- private final int length;
+ private final int precision;
private final int scale;
public static Class<? extends Facet> type() {
return BigDecimalValueFacet.class;
}
- public BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer length, final Integer scale) {
+ public BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation(final FacetHolder holder, final Integer precision, final Integer scale) {
super(BigDecimalFacetForPropertyFromJavaxValidationDigitsAnnotation.type(), holder, Derivation.NOT_DERIVED);
- this.length = length;
+ this.precision = precision;
this.scale = scale;
}
@Override
- public Integer getLength() {
- return length;
+ public Integer getPrecision() {
+ return precision;
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacet.java
index 7388f7b..dc4c115 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacet.java
@@ -24,7 +24,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
public interface BigDecimalValueFacet extends Facet {
/**
- * Maximum length of digits for this decimal.
+ * Maximum length of digits for this decimal (in other words, its precision).
*
* <p>
* For example:
@@ -34,8 +34,16 @@ public interface BigDecimalValueFacet extends Facet {
* <li><tt>12345.0</tt> has a length of 6 (and {@link #getScale() scale} of 1)</li>
* </ul>
*/
+ Integer getPrecision();
+
+ /**
+ * Same as {@link #getPrecision()}.
+ *
+ * @deprecated
+ */
+ @Deprecated
Integer getLength();
-
+
/**
* The number of digits to the right of the decimal place (fractional part) for this decimal.
*
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
new file mode 100644
index 0000000..cb459b5
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueFacetAbstract.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.progmodel.facets.value.bigdecimal;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public abstract class BigDecimalValueFacetAbstract extends FacetAbstract implements BigDecimalValueFacet {
+
+ public BigDecimalValueFacetAbstract(Class<? extends Facet> facetType, FacetHolder holder, Derivation derivation) {
+ super(facetType, holder, derivation);
+ }
+
+ @Override
+ public abstract Integer getPrecision();
+
+ @Override
+ public final Integer getLength() {
+ return getPrecision();
+ }
+
+ @Override
+ public abstract Integer getScale();
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
index a32875f..536226f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
@@ -69,9 +69,15 @@ public class BigDecimalValueSemanticsProvider extends ValueSemanticsProviderAndF
// //////////////////////////////////////////////////////////////////
// Parser
// //////////////////////////////////////////////////////////////////
-
+
+ @Deprecated
@Override
public Integer getLength() {
+ return getPrecision();
+ }
+
+ @Override
+ public Integer getPrecision() {
return DEFAULT_LENGTH;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
index 2bcf4b5..43cd3fe 100644
--- a/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
+++ b/core/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.tck.dom.scalars;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
-
+import javax.validation.constraints.Digits;
import org.apache.isis.applib.AbstractDomainObject;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.ObjectType;
@@ -151,6 +151,7 @@ public class JdkValuedEntity extends AbstractDomainObject {
// {{ BigDecimalProperty (to hold values that are larger than a double)
private BigDecimal bigDecimalProperty;
+ @Digits(integer=20,fraction = 10) // corresponds to big-decimal(30,10)
@Optional
@MemberOrder(sequence = "1")
public BigDecimal getBigDecimalProperty() {
http://git-wip-us.apache.org/repos/asf/isis/blob/42f33f6a/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java b/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
index 9d337a2..73e5dd1 100644
--- a/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
+++ b/core/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
@@ -46,7 +46,7 @@ public class JdkValuedEntityFixture extends AbstractFixture {
final JdkValuedEntity entity = jdkValuesEntityRepository.newEntity();
entity.setBigDecimalProperty(new BigDecimal("12345678901234567890.1234567890"));
entity.setBigDecimalProperty2(new BigDecimal("123.45"));
- entity.setBigIntegerProperty(new BigInteger("12345678901234567890"));
+ entity.setBigIntegerProperty(new BigInteger("123456789012345678"));
entity.setBigIntegerProperty2(new BigInteger("12345"));
entity.setJavaSqlDateProperty(asSqlDate("2014-04-24"));
entity.setJavaSqlTimeProperty(asSqlTime("1970-01-01T12:34:45Z"));