package maps.validate; import java.util.ArrayList; import java.util.Collection; import java.util.List; import maps.MapException; import maps.MapReader; import maps.gml.GMLMap; /** * Load a map and check it for errors. * */ public final class GMLMapValidator { private static List<MapValidator<GMLMap>> validators; static { validators = new ArrayList<MapValidator<GMLMap>>(); validators.add(new GMLConnectivityValidator()); validators.add(new GMLShapeValidator()); validators.add(new GMLTraversabilityValidator()); } private GMLMapValidator() {} /** * Returns a list of default MapValidators to use for GML maps. @return List of default MapValidators. */ public static List<MapValidator<GMLMap>> getDefaultValidators() { return new ArrayList<MapValidator<GMLMap>>(validators); } /** * @param args The command line arguments. */ public static void main(String[] args) { try { GMLMap map = (GMLMap)MapReader.readMap(args[0]); boolean hasErrors = true; for (MapValidator<GMLMap> val : validators) { Collection<ValidationError> errors = val.validate(map); for (ValidationError e : errors) { System.err.println(e); hasErrors = true; } } if (!hasErrors) { System.out.println("No errors have been found."); } } catch (MapException e) { e.printStackTrace(); } } }