/*******************************************************************************
 * Copyright (c) 2004-2009 Akos Horvath 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:
 *    Akos Horvath - initial API and implementation
 *******************************************************************************/


package org.eclipse.viatra2.gtasm.interpreter.term.internal;

public class TermInterpreterErrorString {
	
	public static String VPM_CORE = "VPM Core exception caught: {1}";
	public static String NATIVE_FUNCTION_EXCEPTION= "The following exception was caught when evaluating the {1} Native Function: {2}";
	public static String EXECUTION_ENVIRONMENT_EXCEPTION= "The following error happend when evaluating the {1} VariableReference: ";
	
	public static String PARAM_NUM_ARITHMETIC = "Incorrect number of parameters for the {1} arithmetic operation ";
	public static String PARAM_NUM_CONVERSION = "Incorrect number of parameters. The {1} conversion operation requires only one input parameter";
	public static String PARAM_NUM_RELATIONAL = "Incorrect number of parameters. The {1} relational operation requires two input parameters";
	
	public static String PARAM_NOT_SUITABLE_WITH_OPERATION_ONE_PARAM = "The {1} type of the parameter is not suitable for the {2} operation.";
	public static String PARAM_NOT_SUITABLE_WITH_OPERATION_1 = "The type of the first parameter is not suitable for the {1} operation. First parameter: {2}, second parameter: {3}";
	public static String PARAM_NOT_SUITABLE_WITH_OPERATION_2 = "The type of the second parameter is not suitable for the {1} operation. First parameter: {2}, second parameter: {3}";
	
	public static String UNIMP_ARITHMETIC = "Unimplemented Arithmetic Operation: {1}";
	public static String UNIMP_CONVERSION = "Unimplemented Conversion Operation: {1}";
	public static String UNIMP_MODELQUERY = "Unimplemented Model query: {1}";
	public static String UNIMP_RELATIONAL = "Unimplemented Relational Operation: {1}";
	public static String UNIMP_TERM = "Unimplemented Term type: {1}";
	
	public static String REF_NOT_RELATION_MODELELEMENTQUERY = "The {1} modelelement query was invoked with an argument that did not evaluate to a Relation, but instead to a(n) {2}.";
	public static String REF_NOT_ENTITY_MODELELEMENTQUERY = "The {1} modelelement query was invoked with an argument that did not evaluate to a Entity, but instead to a(n) {2}.";
	public static String REF_NOT_EXIST_MODELELEMENTQUERY = "The {1} modelelement query was invoked with undef";
	public static String REF_NOT_MODELELEMENT_MODELELEMENTQUERY = "The {1} modelelement query was invoked with an argument that did not evaluate to a ModelElement (Entity or Relation), but instead to a(n) {2}.";
	public static String REF_NOT_STRING_MODELELEMENTQUERY = "The {1} modelelement query was invoked with an argument that did not evaluate to a String, but instead to a(n) {2}.";

	public static final String CONSTANT_MODELELEMENT_DOESNOTEXISTS = "The referred modelelement constant '{1}' is not present in the model space.";
	public static final String TERM_NOT_BOOL_COMPATIBLE = "The input parameter of the {1} operation can not be converted to Boolean as its type is {2}.";
	public static final String TERM_NOT_MULTIPLICITY_COMPATIBLE = "The input parameter of the {1} operation can not be converted to Multiplicity as its type is {2}.";
	public static final String TERM_CAN_NOT_BE_CONVERTED = "'{1}' could not be converted to a(n) {2} by the {3} conversion operation.";
}
