Annotation Interface Facade


@Documented @Target(TYPE) @Retention(RUNTIME) public @interface Facade
Types that are annotated with this annotation are considered as Facades.
Facades are used to provide a simple interface to a complex subsystem.

Facades can also be used to extend multiple classes.
Therefor, the facade hides an instance of each class that should be extended
and provides the methods of the extended classes.

The logic of the methods provided by the facade may be different
from the logic from the standalone classes.
The facade can also keep methods internal or provide additional methods.