On Sun, Mar 14, 2010 at 10:46 AM, Stefan Seelmann <seelm...@apache.org> wrote:
> Emmanuel Lecharny schrieb:
>> Hi,
>>
>> we have many objects that we want to be immutable. What's the best solution
>> to produce  those immutable objets ?
>>
>> - For DN, we would like to use valueOf(), and the DN() constructor, but no
>> setter
>> - For Entry, a constructor is not enough, as we may have to inject new
>> attributes. We may need to have two different classes, one immutable, one
>> mutable. The immutable class could be associated with a factory, or we can
>> use a constructor with the list of attributes as a parameter.
>> - For attributes, we have the same problem : we may have more than one
>> value.
>>
>> DO any of you guys have a strong opinion ?
>
> Entry and Attribute object created by the user of the API shouldn't be
> immutable. As user of the API I want to create an Entry object and add
> attribute and values to it. So the API must provide setters.
>
> So I think if Entry and Attribute are interfaces we just define the
> getter methods.
>
> The default implementations of those classes (e.g. ClientEntry and
> ClientAttribute) additional have setters the user can use when
> constructing the objects.
>
> The Entry objects returned from the API (e.g. from a search) should be
> immutable to protect them from being casted by the user, e.g. by
> wrapping a created ClientEntry into an ImmutableEntry implementation.
>

I agree with Stefan.

-- 
Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org

Reply via email to