public interface ComponentA {
void methodA();
}
public class ComponentAImpl implements ComponentA {
public void methodA() {
}
}
public interface ComponentB {
void methodB();
}
public class ComponentBImpl implements ComponentB {
public void methodB() {
}
}
public interface Adapter {
void adapt();
}
public class AdapterImpl implements Adapter {
private ComponentA componentA;
private ComponentB componentB;
public void setComponentA(ComponentA componentA) {
this.componentA = componentA;
}
public void setComponentB(ComponentB componentB) {
this.componentB = componentB;
}
public void adapt() {
componentA.methodA();
componentB.methodB();
}
}
@Component
public class MyComponent {
@Reference
private Adapter adapter;
@Activate
public void activate() {
adapter.adapt();
}
}