diff --git a/depmgmt/pom.xml b/depmgmt/pom.xml
index 1e224105..841609ee 100644
--- a/depmgmt/pom.xml
+++ b/depmgmt/pom.xml
@@ -274,7 +274,7 @@
org.joda
joda-money
- 0.12
+ 1.0.1
true
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrency.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrency.java
index 3bb93e59..5545fff6 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrency.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrency.java
@@ -16,6 +16,7 @@
package org.jadira.usertype.moneyandcurrency.joda;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import org.jadira.usertype.moneyandcurrency.joda.columnmapper.StringColumnCurrencyUnitMapper;
import org.jadira.usertype.moneyandcurrency.legacyjdk.columnmapper.BigDecimalBigDecimalColumnMapper;
@@ -29,23 +30,34 @@
*/
public class PersistentMoneyAmountAndCurrency extends AbstractMultiColumnUserType {
- private static final long serialVersionUID = 3735995469031558183L;
+ private static final long serialVersionUID = 3735995469031558183L;
- private static final ColumnMapper, ?>[] COLUMN_MAPPERS = new ColumnMapper, ?>[] { new StringColumnCurrencyUnitMapper(), new BigDecimalBigDecimalColumnMapper() };
+ private static final ColumnMapper, ?>[] COLUMN_MAPPERS = new ColumnMapper, ?>[] { new StringColumnCurrencyUnitMapper(), new BigDecimalBigDecimalColumnMapper() };
private static final String[] PROPERTY_NAMES = new String[]{ "currencyUnit", "amount" };
-
- @Override
- protected ColumnMapper, ?>[] getColumnMappers() {
- return COLUMN_MAPPERS;
- }
+
+ private RoundingMode roundingMode;
+
+ public PersistentMoneyAmountAndCurrency() {
+ this(RoundingMode.HALF_UP);
+ }
+
+ public PersistentMoneyAmountAndCurrency(RoundingMode roundingMode) {
+ super();
+ this.roundingMode = roundingMode;
+ }
+
+ @Override
+ protected ColumnMapper, ?>[] getColumnMappers() {
+ return COLUMN_MAPPERS;
+ }
@Override
protected Money fromConvertedColumns(Object[] convertedColumns) {
CurrencyUnit currencyUnitPart = (CurrencyUnit) convertedColumns[0];
BigDecimal amountPart = (BigDecimal) convertedColumns[1];
- Money money = Money.of(currencyUnitPart, amountPart);
+ Money money = Money.of(currencyUnitPart, amountPart, roundingMode);
return money;
}
@@ -55,9 +67,9 @@ protected Object[] toConvertedColumns(Money value) {
return new Object[] { value.getCurrencyUnit(), value.getAmount() };
}
-
+
@Override
- public String[] getPropertyNames() {
- return PROPERTY_NAMES;
- }
+ public String[] getPropertyNames() {
+ return PROPERTY_NAMES;
+ }
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrencyAsInteger.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrencyAsInteger.java
index e081324d..9ddcf497 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrencyAsInteger.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/PersistentMoneyAmountAndCurrencyAsInteger.java
@@ -16,6 +16,7 @@
package org.jadira.usertype.moneyandcurrency.joda;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import org.jadira.usertype.moneyandcurrency.joda.columnmapper.IntegerColumnCurrencyUnitMapper;
import org.jadira.usertype.moneyandcurrency.legacyjdk.columnmapper.BigDecimalBigDecimalColumnMapper;
@@ -35,6 +36,17 @@ public class PersistentMoneyAmountAndCurrencyAsInteger extends AbstractMultiColu
private static final String[] PROPERTY_NAMES = new String[]{ "currencyUnit", "amount" };
+ private RoundingMode roundingMode;
+
+ public PersistentMoneyAmountAndCurrencyAsInteger() {
+ this(RoundingMode.HALF_UP);
+ }
+
+ public PersistentMoneyAmountAndCurrencyAsInteger(RoundingMode roundingMode) {
+ super();
+ this.roundingMode = roundingMode;
+ }
+
@Override
protected ColumnMapper, ?>[] getColumnMappers() {
return COLUMN_MAPPERS;
@@ -45,7 +57,7 @@ protected Money fromConvertedColumns(Object[] convertedColumns) {
CurrencyUnit currencyUnitPart = (CurrencyUnit) convertedColumns[0];
BigDecimal amountPart = (BigDecimal) convertedColumns[1];
- Money money = Money.of(currencyUnitPart, amountPart);
+ Money money = Money.of(currencyUnitPart, amountPart, roundingMode);
return money;
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnBigMoneyMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnBigMoneyMapper.java
index 0f6d46f7..4e48e7f3 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnBigMoneyMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnBigMoneyMapper.java
@@ -36,7 +36,7 @@ public BigMoney fromNonNullValue(BigDecimal val) {
@Override
public BigDecimal toNonNullValue(BigMoney value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return BigMoney.of(value).getAmount();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnMoneyMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnMoneyMapper.java
index 67f48cfd..31c62b26 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnMoneyMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/BigDecimalColumnMoneyMapper.java
@@ -36,7 +36,7 @@ public Money fromNonNullValue(BigDecimal val) {
@Override
public BigDecimal toNonNullValue(Money value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return value.getAmount();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/IntegerColumnCurrencyUnitMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/IntegerColumnCurrencyUnitMapper.java
index 0258eaf5..43ee3819 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/IntegerColumnCurrencyUnitMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/IntegerColumnCurrencyUnitMapper.java
@@ -46,7 +46,7 @@ public CurrencyUnit fromNonNullString(String s) {
public String toNonNullString(CurrencyUnit value) {
String str = value.getNumeric3Code();
if ("".equals(str)) {
- return value.getCurrencyCode();
+ return value.getCode();
} else {
return str;
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMajorMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMajorMapper.java
index 16e8b239..59d15f28 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMajorMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMajorMapper.java
@@ -38,7 +38,7 @@ public BigMoney fromNonNullValue(Long value) {
@Override
public Long toNonNullValue(BigMoney value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return value.toBigMoney().getAmountMajorLong();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMinorMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMinorMapper.java
index 50c2496b..c4cd4723 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMinorMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnBigMoneyMinorMapper.java
@@ -34,7 +34,7 @@ public BigMoney fromNonNullValue(Long val) {
@Override
public Long toNonNullValue(BigMoney value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return value.toBigMoney().getAmountMinorLong();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMajorMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMajorMapper.java
index ded24e82..212c6f4a 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMajorMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMajorMapper.java
@@ -34,7 +34,7 @@ public Money fromNonNullValue(Long val) {
@Override
public Long toNonNullValue(Money value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return value.getAmountMajorLong();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMinorMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMinorMapper.java
index ad1d1475..d7e9c85a 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMinorMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/LongColumnMoneyMinorMapper.java
@@ -34,7 +34,7 @@ public Money fromNonNullValue(Long val) {
@Override
public Long toNonNullValue(Money value) {
if (!currencyUnit.equals(value.getCurrencyUnit())) {
- throw new IllegalStateException("Expected currency " + currencyUnit.getCurrencyCode() + " but was " + value.getCurrencyUnit());
+ throw new IllegalStateException("Expected currency " + currencyUnit.getCode() + " but was " + value.getCurrencyUnit());
}
return value.getAmountMinorLong();
}
diff --git a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/StringColumnCurrencyUnitMapper.java b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/StringColumnCurrencyUnitMapper.java
index 5e66d038..0bb4df16 100644
--- a/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/StringColumnCurrencyUnitMapper.java
+++ b/usertype.core/src/main/java/org/jadira/usertype/moneyandcurrency/joda/columnmapper/StringColumnCurrencyUnitMapper.java
@@ -29,6 +29,6 @@ public CurrencyUnit fromNonNullValue(String s) {
@Override
public String toNonNullValue(CurrencyUnit value) {
- return value.getCurrencyCode();
+ return value.getCode();
}
}
diff --git a/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnit.java b/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnit.java
index 53861350..439e3182 100644
--- a/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnit.java
+++ b/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnit.java
@@ -24,7 +24,7 @@
public class TestPersistentCurrencyUnit extends AbstractDatabaseTest {
- private static final CurrencyUnit[] currencies = new CurrencyUnit[]{CurrencyUnit.EUR, CurrencyUnit.USD, CurrencyUnit.GBP, CurrencyUnit.getInstance("SAR"), null};
+ private static final CurrencyUnit[] currencies = new CurrencyUnit[]{CurrencyUnit.EUR, CurrencyUnit.USD, CurrencyUnit.GBP, CurrencyUnit.of("SAR"), null};
public TestPersistentCurrencyUnit() {
super(TestJodaMoneySuite.getFactory());
diff --git a/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnitAsInteger.java b/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnitAsInteger.java
index 2a7af9e4..f97c52a2 100644
--- a/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnitAsInteger.java
+++ b/usertype.core/src/test/java/org/jadira/usertype/moneyandcurrency/joda/TestPersistentCurrencyUnitAsInteger.java
@@ -24,7 +24,7 @@
public class TestPersistentCurrencyUnitAsInteger extends AbstractDatabaseTest {
- private static final CurrencyUnit[] currencies = new CurrencyUnit[]{CurrencyUnit.EUR, CurrencyUnit.USD, CurrencyUnit.GBP, CurrencyUnit.getInstance("SAR"), null};
+ private static final CurrencyUnit[] currencies = new CurrencyUnit[]{CurrencyUnit.EUR, CurrencyUnit.USD, CurrencyUnit.GBP, CurrencyUnit.of("SAR"), null};
public TestPersistentCurrencyUnitAsInteger() {
super(TestJodaMoneySuite.getFactory());