Re: BinaryObject API confuses users

2019-12-10 Thread Ilya Kasnacheev
Hello! I think we should check that setField happily accepts both BinaryObject and BinaryObjectBuilder, and then deprecate this method. Regards, -- Ilya Kasnacheev пт, 6 дек. 2019 г. в 16:02, Alexei Scherbakov : > Looks like it's already possible to pass binary object as value using > BinaryO

Re: BinaryObject API confuses users

2019-12-06 Thread Alexei Scherbakov
Looks like it's already possible to pass binary object as value using BinaryObjectBuilder setField(String name, Object val); If it works we can remove a signature with BinaryObjectBuilder. The API is truly confusing. пт, 6 дек. 2019 г. в 15:55, Николай Ижиков : > I’m too, Alex. > > But, this si

Re: BinaryObject API confuses users

2019-12-06 Thread Николай Ижиков
I’m too, Alex. But, this signature leads to the same error as I mentioned. > 6 дек. 2019 г., в 15:53, Alexei Scherbakov > написал(а): > > I wonder why signature is not > > setField(String name, BinaryObject obj) > > пт, 6 дек. 2019 г. в 15:00, Ilya Kasnacheev : > >> Hello! >> >> I think

Re: BinaryObject API confuses users

2019-12-06 Thread Alexei Scherbakov
I wonder why signature is not setField(String name, BinaryObject obj) пт, 6 дек. 2019 г. в 15:00, Ilya Kasnacheev : > Hello! > > I think that repeating argument type name in method name is a code smell. > Rather, we should describe how this method is different from other methods > of its bunch.

Re: BinaryObject API confuses users

2019-12-06 Thread Ilya Kasnacheev
Hello! I think that repeating argument type name in method name is a code smell. Rather, we should describe how this method is different from other methods of its bunch. In this case, it is different since it allows you to create nested binary objects, i.e., ones with non-flat structure. Regards

Re: BinaryObject API confuses users

2019-12-06 Thread Николай Ижиков
Hello, Ilya. I don’t get your point > We don’t passing … binary, just a … BinaryObjeсtBuilder. May be we should go with `setBinaryObjectBuilderField` or `setBinaryObjectField`? > 6 дек. 2019 г., в 13:38, Ilya Kasnacheev > написал(а): > > Hello! > > I can see where you are getting at, can

Re: BinaryObject API confuses users

2019-12-06 Thread Ilya Kasnacheev
Hello! I can see where you are getting at, can we call it "setFieldNested" instead or something like that? setBinaryField is confusing because we're not passing anything especially binary, just a nested BinaryObjectBuilder. Regards, -- Ilya Kasnacheev пт, 6 дек. 2019 г. в 13:17, Николай Ижико

Re: BinaryObject API confuses users

2019-12-06 Thread Ivan Pavlukhin
Nikolay, It seems to me, that the real cause of the issue is a contract: public T getField(String name); Which can lead to class cast to any type. Consequently, a user gets runtime type checks instead of compile time checks. On the other hand, your proposal could be handy in practice, have not

BinaryObject API confuses users

2019-12-06 Thread Николай Ижиков
Hello, Igniters. We have confusing API in `BinaryObjectBuilder` class. The code below leads to the `ClassCastException` The cause is java method resolution rules [1] > There may be more than one such method, in which case the most specific one > is chosen I suggest to deprecate `setField(Strin