processImplementationHiding(componentProperties, list);
processCaching(componentProperties, adapter.getComponentImplementation(), list);
processGuarding(componentProperties, adapter.getComponentImplementation(), list);
//Instantiate Chain of ComponentFactories
BehaviorFactory lastFactory = null;
for (BehaviorFactory componentFactory : list) {
if (lastFactory != null) {
componentFactory.wrap(lastFactory);
}
lastFactory = componentFactory;
}
if (lastFactory == null) {
return adapter;
}
return lastFactory.addComponentAdapter(componentMonitor, lifecycleStrategy, componentProperties, adapter);
}