Hi Sebastian,
cool that looks a lot cleaner than before, thank you so much! :)

As I try to merge the changes into the Scala branch, there is one last point to 
discuss:

Do we really need the PlcRequest reference the response? I can relate to it in 
terms of convenience
but it looks quite ugly to me for the following reasons:

1) The two classes (Response/Request) are really tightly coupled which is not 
necessary as we can „navigate“ back from response to request
2) We got mutable state in the request item which is not functional and I would 
hesitate to implement it that way in Scala
3) The behavior gets quite messy when a RequestItem instance is used multiple 
times (which right now is viable and not prohibited)
     Just one example: Sending an item a second time leads to a non-updated 
request item as the response item won’t be null anymore.

Experience has shown me that constructs like this lead to really hard-to-find 
bugs, but I am open for discussion.
@Chris what do you think?

Sorry for nagging again...
again a big thanks for the clean-up!
Mark



> Am 11.01.2018 um 15:35 schrieb Sebastian Rühl 
> <[email protected]>:
> 
> Hi all,
> 
> I could cleanup a lot in the refactoring/java_generify branch.
> 
> First of all thanks for the feedback of Chris and Mark I could simplify this 
> by a great deal.
> Now we just have additional TypeSafePlc* requests.
> The convenience methods are integrated into the normal request classes.
> 
> As the changes are now minimal im going to merge this branch into master.
> 
> Regarding the builders: My preference would be to encourage the use of them 
> and limit the visibility of the constructors. However as these are 
> optimizations we could look at this after that.
> 
> Sebastian

Reply via email to