Improve Person Attribute Types

I am working on TRUNK-2134, TRUNK-4231 which will introduce a set of AttributeTypeHandlers to handle different attribute types as proposed here. Few things to clarify in that document. :slight_smile:

  1. Since we have to have support settings like, input mask, list of possible options, isSingledValue, isUnique etc. AFAIU, an abstract class is most suitable for AttributeTypeHandler rather than an interface. Or the best option would be to have it as an interface but have to implement in an abstract AttributeTypeHandlerImpl with above properties and extend that AttributeTypeHandlerImpl for other handlers like PersonAttributeHandler. Shown below.

2.How to define the list of possible options? I mean should it be extensible? Should we provide a facility to add more possible options for admins?

Any thoughts on this are highly appreciated.