Add DataObject default methods (MDSAL-470)

[MDSAL-471] Add DataObject.bindingHashCode() Created: 03/Sep/19  Updated: 20/Jul/20  Resolved: 20/Jul/20

Status: Resolved
Project: mdsal
Component/s: Binding codegen
Affects Version/s: None
Fix Version/s: 7.0.0

Type: Sub-task Priority: Medium
Reporter: Robert Varga Assignee: Ilya Igushev
Resolution: Done Votes: 0
Labels: pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

mdsal-binding-java-api-generator's InterfaceTemplate needs to generate a

interface Foo extends DataObject {
     static int bindingHashCode(final @NonNull Foo obj) {
         // ...
     }
}

method from the contents of generated builder implementation objects. Those need to defer to bindingHashCode() for the actual computation. The method needs to be static, as for Augmentable interfaces it needs a different signature:

interface Foo extends DataObject, Augmentatable<Foo> {
    static <T$$ extends Foo & AugmentationHolder<Foo>> int bindingHashCode(final @NonNull T$$ obj) {
        // ...
    }
}

 


Generated at Wed Feb 07 20:09:53 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.