On Sun, Feb 18, 2018 at 9:05 PM Shelley Tong <shelleytong1...@gmail.com>
wrote:

> Let's say you have a proto defined as the following:
>
> message Zoo {
>     repeated Cat cats = 1;
> }
>
> Let's say cat looks like this:
>
> message Cat {
>     google.protobuf.StringValue name = 1
>     Decimal age = 2;
> }
>
> If I want to reduce the amount of data in Zoo such that sample data only
> contains Cat with only the name field, how do I do that?
>
> Example: A sample Zoo object will look like this:
>
> {
>     Cat: [{
>         name = "sam";
>     },
>     {
>         name = "hester";
>     }]
> }
>
> I'm trying to do this with one field mask:
>
> FieldMask zoo_mask = FieldMask.newBuilder()
>     .addPaths("cats")
>     .build();
>
> Zoo getMaskedZoo(FieldMask mask, Zoo zoo) {
>     Zoo.Builder zooDest = Zoo.newBuilder();
>     FieldMaskUtil.merge(zoo_mask, zoo, zooDest);
>     return zooDest.build();
> }
>
> How do I make it so that only the name displays for each Cat?
>
This is not supported at the moment, i.e., you can't use 'cats.name' in the
FieldMask because 'cats' is a repeated field. FieldMaskUtil is more of a
helper utility for a specific use case of protobuf. In your case, I think
you can simply use protobuf reflection API to do the same.

> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to protobuf+unsubscr...@googlegroups.com.
> To post to this group, send email to protobuf@googlegroups.com.
> Visit this group at https://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to