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

Alexander Belyak updated IGNITE-14748:
--------------------------------------
        Parent: IGNITE-13511
    Issue Type: Sub-task  (was: Improvement)

> Ordered @NamedConfigValue
> -------------------------
>
>                 Key: IGNITE-14748
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14748
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Alexander Belyak
>            Priority: Major
>
> Implement some order for @NamedConfigValue fields.
> Imagine that we have some
>  
> {code:java}
> @Config
> public class PKIndexConfigurationSchema {
>     @Value
>     String type;
>     @NamedConfigValue
>     IndexColumnConfigurationSchema columns.
>  
> {code}
> and
>  
> {code:java}
> @Config
> public class IndexColumnConfigurationSchema {
>     @Value
>     String name;
>     @Value
>     boolean asc;
>     @Value
>     boolean affinityCol;
> }
> {code}
>  
> For now we have to use indexes to store such config like:
>  
> {noformat}
> "PK":
>     "type":"PrimaryKey",
>     "columns": {
>         "0": {
>             "name":"REGION",
>             "asc":true,
>             "affinity":true
>         },
>         "1": {
>             "name":"COMPANY",
>             "asc":true,
>             "affinity":false
>         }
>     }
> {noformat}
>  
> because we have to keep it's order.
> But if configuration keep order for @NamedConfigValue it can look like:
>  
> {noformat}
> "PK":
>     "type":"PrimaryKey",
>     "columns": {
>         "REGION": {
>             "asc":true,
>             "affinity":true
>         },
>         "COMPANY": {
>             "asc":true,
>             "affinity":false
>         }
>     }
> {noformat}
> And to allow insert value in the middle it will be nice to have some methods 
> like
> listChange.create(idx, key, consumer(elementChange)) or
> listChange.createAfter(prevKeyOrNull, key, consumer(elementChange))
> in addition to existing
> listChange.create(key, consumer(elementChange))
> listChange.update(key, consumer(elementChange))
> listChange.delete(key)
> BTW, lets remove listChange.update method.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to