Hey,
This could be solved using polymorphism: CommonsMedia,
IRI, etc could
simply derive from StringValue. Similarly, Percentage could derive
from
NumberValue, etc.
That violates Liskov Substitution [0] ;) If we go with this approach, we
also should have a SquareValue that derives from RectangleValue, to have
the basics covered :D
[0]
https://en.wikipedia.org/wiki/Liskov_substitution_principle
Cheers
--
Jeroen De Dauw
http://www.bn2vs.com
Don't panic. Don't be evil. ~=[,,_,,]:3
--