package com.github.dynamicextensionsalfresco.aop;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.aop.Advisor;
import org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator;
/**
* Creates proxies for using {@link Advisor}s that are marked as {@link DynamicExtensionsAdvisor}s.
*
* @author Laurens Fridael
*
*/
@SuppressWarnings("serial")
public class DynamicExtensionsAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCreator {
/* Main operations */
/**
* Obtains {@link Advisor}s that implement {@link DynamicExtensionsAdvisor}.
*/
@Override
protected List<Advisor> findCandidateAdvisors() {
final List<Advisor> advisors = new ArrayList<Advisor>(super.findCandidateAdvisors());
for (final Iterator<Advisor> it = advisors.iterator(); it.hasNext();) {
final Advisor advisor = it.next();
if (!(advisor instanceof DynamicExtensionsAdvisor)) {
it.remove();
}
}
return advisors;
}
}