[ 
https://issues.apache.org/jira/browse/SANDBOX-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671631#action_12671631
 ] 

Sebb commented on SANDBOX-279:
------------------------------

+1

I'm not sure there is a use-case for changing the CSV Strategy once it has been 
created.

I would make all the fields final, and only allow them to be set via the 
constructor. This would make the class immutable, and therefore thread-safe.

The deprecated constructor could also be dispensed with.

> CSVStrategy has modifiable public static variables
> --------------------------------------------------
>
>                 Key: SANDBOX-279
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-279
>             Project: Commons Sandbox
>          Issue Type: Improvement
>          Components: CSV
>    Affects Versions: Nightly Builds
>            Reporter: Bob Smith
>            Priority: Minor
>         Attachments: CSVStrategyAndTests.patch
>
>
> The public static variables in CSVStrategy are not final and 
> DEFAULT_STRATEGY, EXCEL_STRATEGY, and TDF_STRATEGY can be modified using 
> setter methods.  I would recommend making them all final and using an 
> unmodifiable subclass for the CSVStrategy variables.   
> For this change to work, the main CSVStrategy constructor would have to be 
> changed to set the class fields directly instead of using the setters since 
> the unmodifiable subclass will have overwritten all of the setters to thrown 
> UnsupportedOperationExceptions.  And I think a copy constructor would also be 
> a good addition to allow easily copying one of these (or any) CSVStrategy 
> objects if any modifications have to be made to them (as an alternative to 
> the clone method).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to