package org.vfny.geoserver.control.internal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.AbstractApplicationContext;
import org.vfny.geoserver.control.IStatusChecker;
import org.vfny.geoserver.control.IStatusReporter;
public class StatusReporterImpl implements IStatusReporter, ApplicationContextAware {
private ApplicationContext applicationContext;
public List getStatusReports() {
List reports = new ArrayList();
Map checkerBeans = (Map) applicationContext.getBeansOfType(IStatusChecker.class);
Iterator iter = checkerBeans.entrySet().iterator();
while (iter.hasNext()) {
Entry entry = (Entry) iter.next();
IStatusChecker checker = (IStatusChecker) entry.getValue();
reports.add(checker.checkStatus());
}
return reports;
}
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
public void reset() {
if (applicationContext instanceof AbstractApplicationContext) {
((AbstractApplicationContext) applicationContext).refresh();
}
}
}