All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.rules.parser.conditions.javagrammar.ExistentialDeclaration Maven / Gradle / Ivy

package jadex.rules.parser.conditions.javagrammar;

import jadex.rules.rulesystem.rules.Variable;
import jadex.rules.state.OAVObjectType;


/**
 *  Demand the existence of an object and bind an instance to a variable.
 */
public class ExistentialDeclaration	extends	Expression
{
	//-------- attributes --------
	
	/** The object type. */
	protected OAVObjectType	type;
	
	/** The variable. */
	protected Variable	variable;
	
	//-------- constructors --------
	
	/**
	 *  Create a new existential declaration.
	 *  @param type	The object type.
	 *  @param variable	The variable.
	 */
	public ExistentialDeclaration(OAVObjectType type, Variable variable)
	{
		this.type	= type;
		this.variable	= variable;
	}
	
	//-------- methods --------
	
	/**
	 *  Test if a variable is contained in the expression.
	 *  @param var	The variable.
	 *  @return	True, when the variable is contained.
	 */
	public boolean	containsVariable(Variable var)
	{
		return var.equals(variable);
	}
	
	/**
	 *  Get the variable.
	 */
	public Variable	getVariable()
	{
		return this.variable;
	}
	
	/**
	 *  Get the object type.
	 */
	public OAVObjectType	getType()
	{
		return this.type;
	}
	
	/**
	 *  Get a string representation of this existential declaration.
	 */
	public String	toString()
	{
		return type.getName()+" "+variable.getName();
	}

	/**
	 *  Test if this object is equal to some object.
	 */
	public boolean	equals(Object o)
	{
		return o instanceof ExistentialDeclaration
			&& ((ExistentialDeclaration)o).getType().equals(getType())
			&& ((ExistentialDeclaration)o).getVariable().equals(getVariable());
	}
	
	/**
	 *  Get the hash code.
	 */
	public int	hashCode()
	{
		int	ret	= 31 + getType().hashCode();
		ret	= ret*31 + getVariable().hashCode();
		return ret;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy