[prev in list] [next in list] [prev in thread] [next in thread]
List: avro-dev
Subject: Re: Always getting a value...
From: Niels Basjes <Niels () basjes ! nl>
Date: 2014-11-27 16:37:47
Message-ID: CADoiZqo5vf2fjQz4N4kdt4cro8zuqOnOsG1OwhiRKh-q2fwEcQ () mail ! gmail ! com
[Download RAW message or body]
Hi,
To see how it would work I simply wrote the patch and played in my
environment with the effects on the generated Java code.
[ I created a Jira issue and attached this draft patch to it:
https://issues.apache.org/jira/browse/AVRO-1614 ]
The idea works but I also found that for my usecase it is not very pleasant
to work with.
Assume this example again:
public void setSomething(String value) {
myStruct
.getAlwaysFoo()
.getAlwaysBar()
.getAlwaysOne()
.getAlwaysOther()
.setSomething(value);
}
The main problem is that in order to do .getAlwaysOne() I MUST define ALL
fields of that type with a default value.
What I don;t like about that is that I want the schema definition to
enforce the fact that some fields are mandatory.
By adding a default value to 'everything' I lose that capability of AVRO
... which I don't want.
At this point in time the only workaround this (for me major) issue is by
introducing something where I can do something like having a 'tree of
incomplete Builders' and when I say 'build()' to the top one it will build
the entire tree.
Any thoughts?
Do you guy think there is a need/usecase for this idea (so I leave the
issue open) or shall I simply close AVRO-1614 with a 'Won't fix'?
Niels Basjes
On Thu, Nov 27, 2014 at 1:37 AM, Doug Cutting <cutting@apache.org> wrote:
> On Wed, Nov 26, 2014 at 2:33 PM, svante karlsson <saka@csi.se> wrote:
> > I'm not sure that works for avro where null is used for an optional
> field.
>
> It should work. If it doesn't, it's a bug. For example:
>
> record Foo {
> union {string, null} name = "default";
> }
>
> record Bar {
> union {Foo, null} foo = {"name" = "non-default"};
> }
>
> Default values in IDL are JSON format.
>
> Doug
>
--
Best regards / Met vriendelijke groeten,
Niels Basjes
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic