
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