/* * Created on Jan 23, 2004 * * To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */ package org.vfny.geoserver.config.validation; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.geotools.validation.dto.PlugInDTO; import org.geotools.validation.dto.TestSuiteDTO; import org.vfny.geoserver.global.GeoValidator; /** * ValidationConfig purpose. * <p> * Description of ValidationConfig ... * </p> * * @author dzwiers, Refractions Research, Inc. * @author $Author: dmzwiers $ (last modification) * @version $Id$ */ public class ValidationConfig { public static final String CONFIG_KEY = "Validation.Config"; private Map plugIns; private Map testSuites; /** * ValidationConfig constructor. * <p> * Description * </p> * */ public ValidationConfig() { super(); plugIns = new HashMap(); testSuites = new HashMap(); } /** * ValidationConfig constructor. * <p> * Description * </p> * @param validator GeoValidator */ public ValidationConfig(GeoValidator validator) { this(validator.getPlugIns(), validator.getTestSuites()); } /** * ValidationConfig constructor. * <p> * Description * </p> * @param plugIns a List of PlugInDTO objects * @param testSuites a List of TestSuiteDTO objects */ public ValidationConfig(Map plugIns, Map testSuites) { this.plugIns = new HashMap(); this.testSuites = new HashMap(); Iterator i = null; i = plugIns.keySet().iterator(); while (i.hasNext()) { PlugInDTO dto = (PlugInDTO) plugIns.get(i.next()); PlugInConfig config = new PlugInConfig(dto); this.plugIns.put(config.getName(), config); } i = testSuites.keySet().iterator(); while (i.hasNext()) { TestSuiteDTO dto = (TestSuiteDTO) testSuites.get(i.next()); TestSuiteConfig config = new TestSuiteConfig(dto, this.plugIns); this.testSuites.put(config.getName(), config); } } /** * * getPlugIn purpose. * <p> * Gets a PlugInConfig * </p> * @param name * @return PlugInConfig or null if one does not exist */ public PlugInConfig getPlugIn(String name) { if (name == null) { return null; } return (PlugInConfig) plugIns.get(name); } /** * * getTestSuite purpose. * <p> * Gets a TestSuiteConfig * </p> * @param name * @return TestSuiteConfig or null if one does not exist */ public TestSuiteConfig getTestSuite(String name) { if (name == null) { return null; } return (TestSuiteConfig) testSuites.get(name); } /** * * getTest purpose. * <p> * Gets a TestConfig * </p> * @param name * @param testSuite * @return TestSuiteConfig or null if one does not exist */ public TestConfig getTest(String name, String testSuite) { if ((name == null) || (testSuite == null)) { return null; } TestSuiteConfig tcn = getTestSuite(testSuite); if (tcn == null) { return null; } return (TestConfig) tcn.getTests().get(name); } /** * * addPlugIn purpose. * <p> * Adds the plugin. * </p> * @param plugIn * @return true */ public boolean addPlugIn(PlugInConfig plugIn) { plugIns.put(plugIn.getName(), plugIn); return true; } /** * * addTest purpose. * <p> * Adds the test to the specified testSuite. * </p> * @param test * @param testSuite * @return true on sucess (requires specified plugin to exist), false otherwise. */ public boolean addTest(TestConfig test, String testSuite) { TestSuiteConfig tsc = (TestSuiteConfig) testSuites.get(testSuite); if ((tsc != null) && plugIns.containsKey(test.getPlugIn().getName())) { tsc.getTests().put(test.getName(), test); return true; } return false; } public boolean addTestSuite(TestSuiteConfig testSuite) { Iterator i = testSuite.getTests().keySet().iterator(); while (i.hasNext()) { TestConfig test = (TestConfig) testSuite.getTests().get(i.next()); if (!plugIns.containsKey(test.getPlugIn().getName())) { return false; } } // plug ins all exist testSuites.put(testSuite.getName(), testSuite); return true; } public Object removeTestSuite(String name) { return testSuites.remove(name); } public Object removePlugIn(String name) { return plugIns.remove(name); } public Object removeTest(String testSuite, String name) { return ((TestSuiteConfig) testSuites.get(testSuite)).getTests().remove(name); } /** * toDTO purpose. * <p> * Creates a representation as DTOs * </p> * @param plugIns List an empty list to store the resulting plugInDTOs * @param testSuites List an empty list to store the resulting TestSuiteDTOs * @return true if the lists contain the data, false otherwise. */ public boolean toDTO(Map plugIns, Map testSuites) { if ((plugIns == null) || (testSuites == null)) { return false; } if ((plugIns.size() != 0) || (testSuites.size() != 0)) { return false; } // list are empty, and exist. Iterator i = null; i = this.plugIns.keySet().iterator(); while (i.hasNext()) { PlugInDTO dto = ((PlugInConfig) this.plugIns.get(i.next())).toDTO(); plugIns.put(dto.getName(), dto); } i = this.testSuites.keySet().iterator(); while (i.hasNext()) { TestSuiteDTO dto = ((TestSuiteConfig) this.testSuites.get(i.next())).toDTO(plugIns); testSuites.put(dto.getName(), dto); } return true; } /** * Access plugIns property. * * @return Returns the plugIns. */ public Map getPlugIns() { return plugIns; } /** * Access plugIns property. * * @return Returns the plugIns. */ public Set getPlugInNames() { return plugIns.keySet(); } /** * Set plugIns to plugIns. * * @param plugIns The plugIns to set. */ public void setPlugIns(Map plugIns) { this.plugIns = plugIns; } /** * Access testSuites property. * * @return Returns the testSuites. */ public Map getTestSuites() { return testSuites; } /** * Access testSuites property. * * @return Returns the testSuites. */ public Set getTestSuiteNames() { return testSuites.keySet(); } /** * Set testSuites to testSuites. * * @param testSuites The testSuites to set. */ public void setTestSuites(Map testSuites) { this.testSuites = testSuites; } }