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

Mihai Chira updated FLEX-34880:
-------------------------------
    Description: 
h1. The change
(Both mx and spark) {{Sort}} and {{SortField}} will be transitioned to 
immutable objects to prevent bugs like FLEX-34853. In this step we are:
# _removing the state setters from the interfaces_ ({{ISort}} and 
{{ISortField}}).
# _hiding the state setters behind the {{mx_internal}} namespace_. This also 
implies renaming them (because a getter and a setter with different namespaces 
throw a compile error). The pattern is: {{public function set 
compareFunction(c:Function):void}} becomes {{mx_internal function set 
compareFunction_(c:Function):void}}.

h1. Usage
h3. Before
{code}
var sortField:ISortField = new SortField();
sortField.compareFunction = someCompareFunction;
{code}

h3. After. Version 1 (*preferred*)
{code}
var sortField:ISortField = new SortField(sortName, sortDescending, sortNumeric, 
sortCompareType, sortCompareFunction);
{code}

h3. After. Version 2 (possible, but *discouraged*)
{code}
var sortField:ISortField = new SortField();
SortField(sortField).mx_internal::name = sortName;
SortField(sortField).mx_internal::compareFunction_ = someCompareFunction;
{code}

  was:
h1. The change
(Both mx and spark) {{Sort}} and {{SortField}} will be transitioned to 
immutable objects to prevent bugs like FLEX-34853. In this step we are:
# _removing the state setters from the interfaces_ ({{ISort}} and 
{{ISortField}}).
# _hiding the state setters behind the {{mx_internal}} namespace_. This also 
implies renaming them (because a getter and a setter with different namespaces 
throw a compile error). The pattern is: {{public function set 
compareFunction(c:Function):void}} becomes {{mx_internal function set 
compareFunction_(c:Function):void}}.

h1. Usage
h3. Before
{code}
var sortField:ISortField = new SortField();
sortField.compareFunction = someCompareFunction;
{code}

h3. After. Version 1 (preferred)
{code}
var sortField:ISortField = new SortField(someCompareFunction);
{code}

h3. After. Version 2
{code}
var sortField:ISortField = new SortField();
SortField(sortField).mx_internal::compareFunction_ = someCompareFunction;
{code}


> Place Sort and SortField state setters behind mx_internal
> ---------------------------------------------------------
>
>                 Key: FLEX-34880
>                 URL: https://issues.apache.org/jira/browse/FLEX-34880
>             Project: Apache Flex
>          Issue Type: Sub-task
>          Components: Spark: Sort and SortField
>    Affects Versions: Apache Flex 4.15.0
>            Reporter: Mihai Chira
>            Assignee: Mihai Chira
>             Fix For: Apache Flex 4.16.0
>
>
> h1. The change
> (Both mx and spark) {{Sort}} and {{SortField}} will be transitioned to 
> immutable objects to prevent bugs like FLEX-34853. In this step we are:
> # _removing the state setters from the interfaces_ ({{ISort}} and 
> {{ISortField}}).
> # _hiding the state setters behind the {{mx_internal}} namespace_. This also 
> implies renaming them (because a getter and a setter with different 
> namespaces throw a compile error). The pattern is: {{public function set 
> compareFunction(c:Function):void}} becomes {{mx_internal function set 
> compareFunction_(c:Function):void}}.
> h1. Usage
> h3. Before
> {code}
> var sortField:ISortField = new SortField();
> sortField.compareFunction = someCompareFunction;
> {code}
> h3. After. Version 1 (*preferred*)
> {code}
> var sortField:ISortField = new SortField(sortName, sortDescending, 
> sortNumeric, sortCompareType, sortCompareFunction);
> {code}
> h3. After. Version 2 (possible, but *discouraged*)
> {code}
> var sortField:ISortField = new SortField();
> SortField(sortField).mx_internal::name = sortName;
> SortField(sortField).mx_internal::compareFunction_ = someCompareFunction;
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to