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

jadex.rules.state.javaimpl.OAVObjectUsage Maven / Gradle / Ivy

package jadex.rules.state.javaimpl;

import jadex.rules.state.OAVAttributeType;

/**
 *  Struct for storing an object usage.
 *  Identifies that a defined value (not part of this usage)
 *  is used in the defined object in the defined attribute.
 */
public class OAVObjectUsage
{
	//-------- attributes --------
	
	/** The object. */
	protected Object object;
	
	/** The attribute. */
	protected OAVAttributeType attr;
	
	/** External flag (i.e. referencing object is only externally referenced and no longer in state). */
	protected boolean external;
	
	//-------- constructors --------
	
	/**
	 *  Create a new object usage.  
	 */
	public OAVObjectUsage(Object object, OAVAttributeType attr)
	{
		this.object	= object;
		this.attr	= attr;
		this.external	= false;
	}

	//-------- methods --------
	
	/**
	 *  Get the object.
	 */
	public Object getObject()
	{
		return object;
	}

	/**
	 *  Get the attribute.
	 */
	public OAVAttributeType getAttribute()
	{
		return attr;
	}
	/**
	 *  Get the external flag.
	 */
	public boolean isExternal()
	{
		return external;
	}

	/**
	 *  Set the external flag.
	 */
	public void setExternal(boolean external)
	{
		this.external	= external;
	}

	/**
	 *  Generate the hash code.
	 */
	public int hashCode()
	{
		int result = 31 + attr.hashCode();
		result = 31 * result + object.hashCode();
		return result;
	}

	/**
	 *  Test if two objects are equal.
	 */
	public boolean equals(Object obj)
	{
		if(this == obj)
			return true;
		
		boolean	ret	= false;
		if(obj instanceof OAVObjectUsage)
		{
			final OAVObjectUsage other = (OAVObjectUsage)obj;
			ret	= object.equals(other.getObject())
				&& attr.equals(other.getAttribute());
		}
		return ret;
	}
	
	/**
	 *  Create a string representation.
	 */
	public String toString()
	{
		return "Usage("+object+" "+attr.getName()+" )";
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy