Class CompositeProxy
java.lang.Object
jdk.jpackage.internal.util.CompositeProxy
Dynamic proxy dispatching method calls to multiple objects. It is aimed at
creating objects from mixins. The class provides functionality similar to
that of
Output:
net.sf.cglib.proxy.Mixin
class from the cglib library.
Sample usage:
interface Sailboat {
default void trimSails() {
}
}
interface WithMain {
void trimMain();
}
interface WithJib {
void trimJib();
}
interface Sloop extends Sailboat, WithMain, WithJib {
@Override
public default void trimSails() {
System.out.println("On the sloop:");
trimMain();
trimJib();
}
}
interface Catboat extends Sailboat, WithMain {
@Override
public default void trimSails() {
System.out.println("On the catboat:");
trimMain();
}
}
final var withMain = new WithMain() {
@Override
public void trimMain() {
System.out.println(" trim the main");
}
};
final var withJib = new WithJib() {
@Override
public void trimJib() {
System.out.println(" trim the jib");
}
};
Sloop sloop = CompositeProxy.create(Sloop.class, new Sailboat() {
}, withMain, withJib);
Catboat catboat = CompositeProxy.create(Catboat.class, new Sailboat() {
}, withMain);
sloop.trimSails();
catboat.trimSails();
On the sloop: trim the main trim the jib On the cat: trim the main
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
Builder ofCompositeProxy
instances.static interface
Invocation tunnel. -
Method Summary
Modifier and TypeMethodDescriptionstatic CompositeProxy.Builder
build()
Creates a new proxy builder.static <T> T
Shortcut forCompositeProxy.build().create(interfaceType, slices)
.
-
Method Details
-
build
Creates a new proxy builder.- Returns:
- a new proxy builder
-
create
-