package com.github.dynamicextensionsalfresco.webscripts;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.extensions.webscripts.WebScript;
public class AnnotationWebScriptRegistrar implements ApplicationContextAware {
/* Dependencies */
private ApplicationContext applicationContext;
private AnnotationWebScriptBuilder annotationBasedWebScriptBuilder;
private WebScriptUriRegistry webScriptUriRegistry;
/* State */
private final List<WebScript> webScripts = new ArrayList<WebScript>();
/* Main operations */
public void registerWebScripts() {
for (final String beanName : applicationContext.getBeanDefinitionNames()) {
for (final WebScript webScript : annotationBasedWebScriptBuilder.createWebScripts(beanName)) {
webScriptUriRegistry.registerWebScript(webScript);
webScripts.add(webScript);
}
}
}
public void unregisterWebScripts() {
for (final Iterator<WebScript> it = webScripts.iterator(); it.hasNext();) {
final WebScript webScript = it.next();
webScriptUriRegistry.unregisterWebScript(webScript);
it.remove();
}
}
/* State */
public List<WebScript> getWebScripts() {
return webScripts;
}
/* Dependencies */
@Override
public void setApplicationContext(final ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
public void setAnnotationBasedWebScriptBuilder(final AnnotationWebScriptBuilder annotationBasedWebScriptBuilder) {
this.annotationBasedWebScriptBuilder = annotationBasedWebScriptBuilder;
}
public void setWebScriptUriRegistry(final WebScriptUriRegistry webScriptUriRegistry) {
this.webScriptUriRegistry = webScriptUriRegistry;
}
}