Project: ant4eclipse
/**********************************************************************
 * Copyright (c) 2005-2009 ant4eclipse project team. 
 * 
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v1.0 
 * which accompanies this distribution, and is available at 
 * http://www.eclipse.org/legal/epl-v10.html 
 * 
 * Contributors: 
 *     Nils Hartmann, Daniel Kasmeroglu, Gerd Wuetherich 
 **********************************************************************/
package org.ant4eclipse.lib.platform.model.resource.validator; 
 
import org.ant4eclipse.lib.platform.model.resource.role.ProjectRole; 
 
/**
 * <p> 
 * Each implementation is capable to validate a certain aspect of a project configuration since a configuration isn't 
 * necessarily correct. 
 * </p> 
 *  
 * @author Daniel Kasmeroglu ([email protected]
 */
 
public interface ProjectValidator { 
 
  /**
   * <p> 
   * Returns <code>true</code> if this validator is capable to handle the supplied role. 
   *  
   * @param role 
   *          The role used for the test. Not <code>null</code>. 
   *  
   * @return <code>true</code> <=> This validator is capable to handle the supplied role. 
   */
 
  boolean canValidate(ProjectRole role); 
 
  /**
   * <p> 
   * Validates the content of a specific project from the perspective of a specific role. 
   * </p> 
   *  
   * @param role 
   *          The role used to provide the necessary information. Not <code>null</code> and 
   *          {@link #canValidate(ProjectRole)} evaluates to <code>true</code>. 
   */
 
  void validate(ProjectRole role); 
 
/* ENDINTERFACE */