1 /********************************************** 2 * Copyright (C) 2011 Lukas Laag 3 * This file is part of svgreal. 4 * 5 * svgreal is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * svgreal is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with svgreal. If not, see http://www.gnu.org/licenses/ 17 **********************************************/ 18 package org.vectomatic.svg.edit.client.model; 19 20 /** 21 * Interface for classes which provide data validation 22 * for a metadata. 23 * @param <T> 24 * The metadata type 25 * @param <U> 26 * The javascript type which provides the property or object 27 * @author laaglu 28 */ 29 public interface IValidator<T, U> { 30 /** 31 * Validates the specified value. 32 * @param model The model object. 33 * @param value The value of this property for the specified model object. 34 * @return null if the value is valid, or a validation error 35 * message if the value is invalid. 36 */ 37 ValidationError validate(U model, T value); 38 }