/******************************************************************************* * Copyright (c) 2013 Rene Schneider, GEBIT Solutions GmbH and others. * 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 *******************************************************************************/ package de.gebit.integrity.runner.modelcheck; import de.gebit.integrity.dsl.Call; import de.gebit.integrity.dsl.CustomOperation; import de.gebit.integrity.dsl.Suite; import de.gebit.integrity.dsl.TableTest; import de.gebit.integrity.dsl.Test; import de.gebit.integrity.exceptions.ModelRuntimeLinkException; /** * The model checker is used to validate a test model prior to execution, with the goal being to capture commonly * occurring problems before they "crash" the system, thereby usually providing only basic information about the * problem. The checks in this checker are supposed to deliver readable, substantial information about erroneous * situations in order to aid the user in fixing the problem. * * @author Rene Schneider - initial API and implementation * */ public interface ModelChecker { /** * Validates a test. * * @param aTest * the test to check * @throws ModelRuntimeLinkException */ void check(Test aTest) throws ModelRuntimeLinkException; /** * Validates a call. * * @param aCall * the call to check * @throws ModelRuntimeLinkException */ void check(Call aCall) throws ModelRuntimeLinkException; /** * Validates a tabletest. * * @param aTableTest * the tabletest to check * @throws ModelRuntimeLinkException */ void check(TableTest aTableTest) throws ModelRuntimeLinkException; /** * Validates a custom operation. * * @param aCustomOperation * the custom operation to check * @throws ModelRuntimeLinkException */ void check(CustomOperation aCustomOperation) throws ModelRuntimeLinkException; /** * Validates a suite call. * * @param aSuite * the suite call to check * @throws ModelRuntimeLinkException */ void check(Suite aSuite) throws ModelRuntimeLinkException; }