I mean java8 Streams 
(https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html).
 
And I said that is the same as Immutable+FluentIterable because you can use 
Stream.of(values[]). And IMO this makes more sense in a DTO than using the 
interfaces on the collection frameworks (list, set, map, and worst with 
specific types like ArrayList, EnumSet, etc), because whats means a set in 
a DTO (I mean in the JSON), or worst an EnumSet? this information is not 
related to the schema of the transferred data, and I think that this makes 
the encoding/decoding much more complex. And with Streams you can get back 
to the java collection whenever you really need it quite easy, for example 
if you have 'String[] types' an array of enum names of TypeEnum, you can 
get the Set using Stream.of(types).map(TypeEnum::valueOf).colllect(toSet());

On Friday, August 19, 2016 at 8:04:37 PM UTC+2, Vassilis Virvilis wrote:
>
> Thanks for the write up. I would definitely have it in mind.
>
> BTW can you expand a bit on the stream thingy? Is there a link somewhere 
> to read about?
>
>     Vassilis
>
> On Fri, Aug 19, 2016 at 8:59 PM, Ignacio Baca Moreno-Torres <
> ign...@bacamt.com <javascript:>> wrote:
>
>> Migrating everything is not a good idea, but you should give a try to 
>> arrays in new models or some parts of your application. We found that we 
>> frequently end up using Immutable collections and FluentIterable, and this 
>> is almost the same that using arrays and streams. As you said, migrating a 
>> whole project is too complicated, but you can just start using and 
>> progressively applying to the whole API if this actually works for you. In 
>> 3 years we past from using RequestFactory, to RestyGWT to almost plain 
>> request + jsinterop (actually autorest-gwt). Maybe using plain objects and 
>> arrays doesn't fit in your project, but you really should try.
>>
>> Emm... and a bit of context; I'm try to justify that the complexity added 
>> during parsing/encoding to support collections and generics really do not 
>> worth (depends on projects) if your API use DTOs and you have streams 
>> available. In our project the DTOs classes end up as a scheme definition, 
>> defining the name and type of each property and with a minimal overhead 
>> during parsing/encoding in JRE, GWT and even Android (
>> https://github.com/ibaca/autorest-nominatim-example/).
>>
>> On Friday, August 19, 2016 at 4:10:30 PM UTC+2, Vassilis Virvilis wrote:
>>>
>>> This makes sense for newer projects maybe.
>>>
>>> I already have a codebase and making trampolines to convert collections 
>>> and maps to arrays and don't know what is a terrifying option.
>>>
>>> I prefer to depend on gwt-jackson (which doesn't work for me - resty-gwt 
>>> works - resty-gwt is switching to gwt-jackson - eventually gwt-jackson will 
>>> work for me) especially if I am using jackson already in the server,
>>>
>>>
>>> On Fri, Aug 19, 2016 at 5:02 PM, Ignacio Baca Moreno-Torres <
>>> ign...@bacamt.com> wrote:
>>>
>>>> IMHO supporting the whole collection frameworks is just an unnecessary 
>>>> complication. Just use plain array, not generics need, and now that stream 
>>>> are supported in GWT you has no excuse to use arrays. The inheritance is 
>>>> not solved in JsInterop for now, just try to avoid.
>>>>
>>>> On Friday, August 19, 2016 at 3:38:28 PM UTC+2, Vassilis Virvilis wrote:
>>>>>
>>>>> How about transmitting nested Collections, Map, complex inheritance 
>>>>> and generics?
>>>>>
>>>>> On Fri, Aug 19, 2016 at 4:30 PM, zakaria amine <zakaria...@gmail.com> 
>>>>> wrote:
>>>>>
>>>>>> I also tried to convert back to the original object: 
>>>>>>
>>>>>> @JsType(isNative=true, namespace=GLOBAL)
>>>>>> public class JSON {
>>>>>> public native static String stringify(Object obj);
>>>>>> public native static Object parse(String obj);
>>>>>>
>>>>>> }
>>>>>>
>>>>>> and then: 
>>>>>> //....
>>>>>>
>>>>>>   Record converted = (Record) JSON.parse(json);
>>>>>>
>>>>>> and it works just fine. why would we need something like gwt-jackson 
>>>>>> anymore? 
>>>>>>
>>>>>>
>>>>>> Le vendredi 19 août 2016 12:05:32 UTC+2, zakaria amine a écrit :
>>>>>>>
>>>>>>> It works. I prefer your solution.
>>>>>>>
>>>>>>> Le vendredi 19 août 2016 11:51:35 UTC+2, Jens a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Am Freitag, 19. August 2016 11:43:12 UTC+2 schrieb zakaria amine:
>>>>>>>>>
>>>>>>>>> I have tried something like: 
>>>>>>>>>
>>>>>>>>> @JsType(namespace=GLOBAL)
>>>>>>>>> public class Record {
>>>>>>>>> String id;
>>>>>>>>> String date;
>>>>>>>>> String data;
>>>>>>>>> public Record() {
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>
>>>>>>>> By default @JsType property "isNative" is false, so your Record 
>>>>>>>> class is a non-native class that might get exported to JS if you use 
>>>>>>>> -generateJsInteropExports during compilation. If you don't use that 
>>>>>>>> flag 
>>>>>>>> the @JsType is treated as a normal class I guess.
>>>>>>>>
>>>>>>>> You should use @JsType(isNative=true, namespace=GLOBAL, 
>>>>>>>> name="Object") so that your Record class becomes a plain JavaScript 
>>>>>>>> object
>>>>>>>>
>>>>>>>> -- J.
>>>>>>>>
>>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "GWT Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to google-web-toolkit+unsubscr...@googlegroups.com.
>>>>>> To post to this group, send email to google-we...@googlegroups.com.
>>>>>> Visit this group at 
>>>>>> https://groups.google.com/group/google-web-toolkit.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Vassilis Virvilis
>>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "GWT Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to google-web-toolkit+unsubscr...@googlegroups.com.
>>>> To post to this group, send email to google-we...@googlegroups.com.
>>>> Visit this group at https://groups.google.com/group/google-web-toolkit.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> -- 
>>> Vassilis Virvilis
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "GWT Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to google-web-toolkit+unsubscr...@googlegroups.com <javascript:>.
>> To post to this group, send email to google-we...@googlegroups.com 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/google-web-toolkit.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Vassilis Virvilis
>

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

Reply via email to