/* * Geotools2 - OpenSource mapping toolkit * http://geotools.org * (C) 2002, Geotools Project Managment Committee (PMC) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * */ /* Copyright (c) 2001, 2003 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, availible at the root * application directory. */ package org.geotools.validation; import java.util.Map; import com.vividsolutions.jts.geom.Envelope; /** * Used to check geospatial information for integrity. * *

* Each ValidationPlugIn is very specific in nature: it performs one test * extermly well. This simplifies design decisions, documenation * configuration and use. *

* *

* Following the lead the excelent design work in the JUnit testing framework * validation results are collected by a ValidationResults object. This * interface for the ValidationResults object also allows it to collect * warning information. *

* *

* The PlugIn is also required to supply some metadata to aid in its * deployment, scripting, logging and execution and error recovery: * *

*

* *

* Capabilities: * *

*

* * @author Jody Garnett, Refractions Research * @source $URL$ */ public interface IntegrityValidation extends Validation { /** * Used to check features against this validation rule. * *

* The layers Map is still under developement, current thinking involves * storing a FeatureSource of the correct typeName requested by * getTypeNames(), using the current geotools2 Transaction as the * opperation being validated. *

* *

* We may need to extend this information to provide: * *

*

* * @param layers Map of FeatureSource by "dataStoreID:typeName" * @param envelope The bounding box that encloses the unvalidated data * @param results Used to coallate results information * * @return true if all the features pass this test. */ public boolean validate(Map layers, Envelope envelope, ValidationResults results) throws Exception; }