/*******************************************************************************
 * Copyright (c) 2004-2008 Andras Schmidt, Andras Balogh, Istvan Rath and Daniel Varro
 * 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:
 *    Andras Schmidt, Andras Balogh, Istvan Rath - initial API and implementation
 *******************************************************************************/

package org.eclipse.viatra2.modelChecker;

import org.eclipse.viatra2.core.IModelElement;
import org.eclipse.viatra2.core.IRelation;
import org.eclipse.viatra2.tags.ITag;

public interface IProblem extends ITag
{
	/**
	 * One endpoint of the relation.
	 * 
	 * @return
	 */
	public IModelElement getEndPoint();

	/**
	 * The relation with problem
	 * 
	 * @return
	 */
	public IRelation getRelation();

	/**
	 * The problematic type of relation.
	 * 
	 * @return
	 */
	public IRelation getRelationType();

	/**
	 * The type of the problem
	 * 
	 * @return
	 */
	public EProblemType getProblemType();

}
