/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.validation.spi;
import java.util.List;
import de.rcenvironment.core.component.model.api.ComponentDescription;
import de.rcenvironment.core.component.validation.api.ComponentValidationMessage;
/**
* All class implementing this interface will be added to the validator
* registry.
*
* @author Jascha Riedel
*
*/
public interface ComponentValidator {
/**
* Validates the provided {@link ComponentDescription} and returns a List of
* {@link ComponentValidationMessage} as result. May be empty but never
* null.
*
* @param componentDescription
* {@link ComponentDescription} to validate.
* @param onWorkflowStart
* Boolean that determines whether additional validation steps
* only required at workflow start are done.
* @return List<ComponentValidationMessage> of created validation messages.
*/
List<ComponentValidationMessage> validate(ComponentDescription componentDescription, boolean onWorkflowStart);
/**
* Returns the ID of the component that the validator belongs to. (Can be
* retrieved from the Component Constants belonging to this component).
*
* @return Identifier of the componet
*/
String getIdentifier();
}