Thank you Stephen,

I understand this; alternatively we could implement a factory method that 
clones DEFAULT_STRATEGY, EXCEL_STRATEGY, TDF_STRATEGY; but I will definitely 
postpone any decision, it is not a big deal for me and we can wait for 
additional feedback. 

Jacopo

On Jan 29, 2011, at 1:16 PM, Stephen Colebourne wrote:

> Traditionally, many commons projects has taken no position on the
> correct way to instantiate objects, whether via constructor or bean
> methods. This was to allow construction from tools such as Velocity.
> It is also still easier to construct using Spring via bean methods
> rather than the constructor.
> 
> These days, immutability and concurrency are more important, so this
> change may be applicable, buts its good to understand the history and
> wide use cases of classes like these.
> 
> Stephen
> 
> 
> On 29 January 2011 12:04, Jacopo Cappellato <jacopo.cappell...@gmail.com> 
> wrote:
>> Hi all,
>> 
>> in my opinion all the setter methods should be removed from the CSVStrategy 
>> class: in this way the fields will only be set using the constructors and 
>> they will become readonly.
>> The main issue I see with the current implementation is that a calling 
>> method can modify the values of the fields of the following static objects 
>> declared in CSVStrategy (changing the default behavior for all subsequent 
>> code that uses for example CSVStrategy.DEFAULT_STRATEGY):
>> 
>>    public static CSVStrategy DEFAULT_STRATEGY = new CSVStrategy(',', '"', 
>> COMMENTS_DISABLED, ESCAPE_DISABLED, true,
>>                                                                 true, false, 
>> true);
>>    public static CSVStrategy EXCEL_STRATEGY   = new CSVStrategy(',', '"', 
>> COMMENTS_DISABLED, ESCAPE_DISABLED, false,
>>                                                                 false, 
>> false, false);
>>    public static CSVStrategy TDF_STRATEGY     = new CSVStrategy('\t', '"', 
>> COMMENTS_DISABLED, ESCAPE_DISABLED, true,
>>                                                                 true, false, 
>> true);
>> 
>> What do you think?
>> 
>> Jacopo
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to