Aside from spelling of the name, that's another good argument.
The interface should be immutable, too.
And it being more like a functional extension is why I wonder, if it shouldn't at least be in the "ext" module.
Validateable looks more like an interface for implementers than users of the Money API. I think in the main users would be interested in the getter but the setter on the interface. Is that part of the intention of the split?
From: Anatole Tresch [mailto:atsticks@...]
Sent: 08 June 2013 14:39
To: Jsr 354 JavaMoney Public Mailinglist; Mark Davis
Subject: [JSR-354] Separation of Validity
I was thinking about, how we can separate Validity from the instances, e.g. CurrencyUnit (one of the key feedback points out of the EDR). As attachment find my proposal how we can achieve that:
- The Validity value type defines a validity for any item where it can be used: CurrencyUnit, but also ExchangeRate.
- I defined another interface Validateable which can be implemented by classes that support validity ranges. I suggest hereby that
- CurrencyUnit will NOT extend this interface. Basically this leads to a very lean CurrencyUnit, which basically only extends the current Currency class by namespaces, the general legal tender and virtual flags (see also attached interface). As a side effect the implementation of equals/hashCode also gets simple.
- ExchangeRate would implement this interface.
- Additionally for the MonetaryCurrencies singleton, within the ext package a ValidatedCurrencyUnit class can be implemented that extends CurrencyUnit with Validateable.
- Similarly a ValideatableAmount class can be added that combines validity with a MonetaryAmount.
I know that not all details were worked out, but I think, it is worth starting the discussion given the two interfaces attached and the comments above. So the discussion is open!
[JSR-354] Re: Separation of Validity
|Mark Davis ☕||06/09/2013|