[ 
https://issues.apache.org/jira/browse/THRIFT-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660910#action_12660910
 ] 

Bryan Duxbury commented on THRIFT-223:
--------------------------------------

I think that we can't really help the enums in containers problem. It's 
solvable, but I think we should open a separate issue for that, as it's related 
to a lot of other things that need to be fixed with containers.

I think you're right about the __isset branching. Maybe what we should do is 
add a method to the generator that generates the isset check for a given field? 
Whatever we do, there will be some issues with the way it is now.

> Validate method should check that enum types are assigned valid values
> ----------------------------------------------------------------------
>
>                 Key: THRIFT-223
>                 URL: https://issues.apache.org/jira/browse/THRIFT-223
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (Java)
>            Reporter: Nathan Marz
>            Assignee: Piotr Kozikowski
>            Priority: Minor
>         Attachments: thrift-223-v2.patch, thrift-223-v3.patch, 
> thrift-223-v4.patch, thrift-223-v5.patch, thrift-223.patch
>
>
> The validate method generated currently checks that required fields are set. 
> It would be nice if it were to enforce more parts of the schema. One example 
> of this are the values assigned to enum types. For example, if I have this 
> enum:
> enum MyEnum {
>  FOO = 1;
>  BAR = 3;
>  BAZ = 4;
>  BIZ = 5;
> } 
> and this struct:
> struct MyStruct {
>  MyEnum e;
> }
> The validate method would ensure that MyStruct#e is either 1, 3, 4, or 5.
> The naive way of implementing this would be to generate a conditional 
> statement for every value, aka 
> "e==1 || e==3 || e==4 || e==5"
> A better implementation would generate something like:
> "e==1 || (e>=3 && e<=5)"
> Since the common case seems to be having large ranges of contiguous values, 
> this is the difference between having N conditionals execute versus 2.

-- 
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