Interface Grouping

All Superinterfaces:
BindingContract<DataContainer>, BindingObject, DataContainer
All Known Subinterfaces:
NotificationBody<T>

public non-sealed interface Grouping extends BindingObject, DataContainer
Base interface extended by all interfaces generated for grouping statements. This interface can be inherited by other Binding interfaces and therefore cannot capture its identity via generics. Furthermore it can be used by users to more closely specify what DataObject species is acceptable in generics, for example:

     public interface Foo extends Grouping {

     }

     public interface Bar extends DataObject, Foo {

     }

     public interface Baz extends DataObject, Foo {

     }

     public interface Service<T extends Foo & DataObject> {

        // ...

     }
 
This precludes generated grouping interfaces from specializing implementedInterface.

Unlike most other BindingObjects and DataContainers, groupings are not instantiated, but capture a reusable trait, which is usually implemented by other DataContainers.

Please note that above restrictions on generics applies to all interfaces extending this contract.