1616import java .math .RoundingMode ;
1717import java .util .HashMap ;
1818import java .util .Map ;
19+ import java .util .Optional ;
1920import java .util .Set ;
2021
2122/**
2223 * Test ExchangeProvider. Created by Anatole on 26.04.2014.
2324 */
24- public class TestRoundingProvider implements RoundingProviderSpi {
25+ public class TestRoundingProvider implements RoundingProviderSpi {
2526
2627 private static final RoundingContext CONTEXT =
2728 RoundingContextBuilder .of (TestRoundingProvider .class .getSimpleName (), "NOSCALE" ).build ();
2829 private static final RoundingContext CONTEXT_CASH =
2930 RoundingContextBuilder .of (TestRoundingProvider .class .getSimpleName (), "cashRounding" ).build ();
3031
31- private Map <String ,MonetaryRounding > customRoundings = new HashMap <>();
32+ private Map <String , MonetaryRounding > customRoundings = new HashMap <>();
3233
33- public TestRoundingProvider (){
34- customRoundings .put ("NOSCALE" , new MonetaryRounding (){
34+ public TestRoundingProvider () {
35+ customRoundings .put ("NOSCALE" , new MonetaryRounding () {
3536 @ Override
36- public RoundingContext getRoundingContext (){
37+ public RoundingContext getRoundingContext () {
3738 return CONTEXT ;
3839 }
3940
4041 @ Override
41- public MonetaryAmount apply (MonetaryAmount value ){
42+ public MonetaryAmount apply (MonetaryAmount value ) {
4243 return value .getFactory ()
4344 .setNumber (value .getNumber ().numberValue (BigDecimal .class ).setScale (0 , RoundingMode .HALF_EVEN ))
4445 .create ();
@@ -47,46 +48,46 @@ public MonetaryAmount apply(MonetaryAmount value){
4748 }
4849
4950 @ Override
50- public MonetaryRounding getRounding (RoundingQuery context ){
51+ public MonetaryRounding getRounding (RoundingQuery context ) {
5152 MonetaryRounding customRounding = customRoundings .get (context .getRoundingName ());
52- if (customRounding != null ){
53+ if (customRounding != null ) {
5354 return customRounding ;
5455 }
55- if (context .getCurrency () == null ){
56+ if (context .getCurrency () == null ) {
5657 return null ;
5758 }
58- Boolean cashRounding = context .getBoolean ("cashRounding" , Boolean .FALSE );
59+ Boolean cashRounding = Optional . ofNullable ( context .getBoolean ("cashRounding" )). orElse ( Boolean .FALSE );
5960 Long timestamp = context .getTimestampMillis ();
60- if (cashRounding ){
61- if (timestamp != null ){
61+ if (cashRounding ) {
62+ if (timestamp != null ) {
6263 return getCashRounding (context .getCurrency (), timestamp );
6364 }
6465 return getCashRounding (context .getCurrency ());
65- }else {
66- if ("XAU" .equals (context .getCurrency ().getCurrencyCode ())){
67- if (timestamp != null ){
68- return new MonetaryRounding (){
66+ } else {
67+ if ("XAU" .equals (context .getCurrency ().getCurrencyCode ())) {
68+ if (timestamp != null ) {
69+ return new MonetaryRounding () {
6970 @ Override
70- public RoundingContext getRoundingContext (){
71+ public RoundingContext getRoundingContext () {
7172 return CONTEXT ;
7273 }
7374
7475 @ Override
75- public MonetaryAmount apply (MonetaryAmount value ){
76+ public MonetaryAmount apply (MonetaryAmount value ) {
7677 return value .getFactory ().setNumber (
7778 value .getNumber ().numberValue (BigDecimal .class ).setScale (2 , RoundingMode .UP ))
7879 .create ();
7980 }
8081 };
8182 }
82- return new MonetaryRounding (){
83+ return new MonetaryRounding () {
8384 @ Override
84- public RoundingContext getRoundingContext (){
85+ public RoundingContext getRoundingContext () {
8586 return CONTEXT ;
8687 }
8788
8889 @ Override
89- public MonetaryAmount apply (MonetaryAmount value ){
90+ public MonetaryAmount apply (MonetaryAmount value ) {
9091 return value .getFactory ()
9192 .setNumber (value .getNumber ().numberValue (BigDecimal .class ).setScale (4 , RoundingMode .UP ))
9293 .create ();
@@ -98,16 +99,16 @@ public MonetaryAmount apply(MonetaryAmount value){
9899 }
99100
100101
101- private MonetaryRounding getCashRounding (CurrencyUnit currency ){
102- if ("XAU" .equals (currency .getCurrencyCode ())){
103- return new MonetaryRounding (){
102+ private MonetaryRounding getCashRounding (CurrencyUnit currency ) {
103+ if ("XAU" .equals (currency .getCurrencyCode ())) {
104+ return new MonetaryRounding () {
104105 @ Override
105- public RoundingContext getRoundingContext (){
106+ public RoundingContext getRoundingContext () {
106107 return CONTEXT_CASH ;
107108 }
108109
109110 @ Override
110- public MonetaryAmount apply (MonetaryAmount value ){
111+ public MonetaryAmount apply (MonetaryAmount value ) {
111112 return value .getFactory ()
112113 .setNumber (value .getNumber ().numberValue (BigDecimal .class ).setScale (1 , RoundingMode .DOWN ))
113114 .create ();
@@ -117,16 +118,16 @@ public MonetaryAmount apply(MonetaryAmount value){
117118 return null ;
118119 }
119120
120- private MonetaryRounding getCashRounding (CurrencyUnit currency , long timestamp ){
121- if ("XAU" .equals (currency .getCurrencyCode ()) && timestamp < 100 ){
122- return new MonetaryRounding (){
121+ private MonetaryRounding getCashRounding (CurrencyUnit currency , long timestamp ) {
122+ if ("XAU" .equals (currency .getCurrencyCode ()) && timestamp < 100 ) {
123+ return new MonetaryRounding () {
123124 @ Override
124- public RoundingContext getRoundingContext (){
125+ public RoundingContext getRoundingContext () {
125126 return CONTEXT_CASH ;
126127 }
127128
128129 @ Override
129- public MonetaryAmount apply (MonetaryAmount value ){
130+ public MonetaryAmount apply (MonetaryAmount value ) {
130131 return value .getFactory ()
131132 .setNumber (value .getNumber ().numberValue (BigDecimal .class ).setScale (2 , RoundingMode .DOWN ))
132133 .create ();
@@ -137,7 +138,7 @@ public MonetaryAmount apply(MonetaryAmount value){
137138 }
138139
139140 @ Override
140- public Set <String > getRoundingNames (){
141+ public Set <String > getRoundingNames () {
141142 return customRoundings .keySet ();
142143 }
143144}
0 commit comments