[ 
https://issues.apache.org/jira/browse/SANDBOX-279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Bourg resolved SANDBOX-279.
------------------------------------

       Resolution: Fixed
    Fix Version/s: CSV 1.0

The static fields are now final and the class is immutable. I followed the 
suggestion of Stephen Colebourne to use chained withXXX setters cloning the 
instance on the fly.
                
> 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
>             Fix For: CSV 1.0
>
>         Attachments: CSVStrategyAndTests.patch, CSVStrategy_Immutable.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.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to