
jadex.rules.rulesystem.rete.extractors.JavaMethodExtractor Maven / Gradle / Ivy
package jadex.rules.rulesystem.rete.extractors;
import java.lang.reflect.InvocationTargetException;
import jadex.rules.rulesystem.rete.Tuple;
import jadex.rules.rulesystem.rules.MethodCall;
import jadex.rules.state.IOAVState;
import jadex.rules.state.OAVAttributeType;
import jadex.rules.state.OAVJavaType;
/**
* Call a method on an object.
*/
public class JavaMethodExtractor implements IValueExtractor
{
//-------- attributes --------
/** The object extractor. */
protected IValueExtractor objex;
/** The method call descriptor. */
protected MethodCall methodcall;
/** The parameter extractors. */
protected IValueExtractor[] parameters;
/** The relevant attributes. */
// protected Set relevants;
//-------- constructors --------
/**
* Create a new method extractor
*/
public JavaMethodExtractor(IValueExtractor objex, MethodCall methodcall, IValueExtractor[] parameters)
{
this.objex = objex;
this.methodcall = methodcall;
this.parameters = parameters;
}
//-------- IValueExtractor interface --------
/**
* Get the value of an attribute from an object or tuple.
* @param left The left input tuple.
* @param right The right input object.
* @param prefix The prefix input object (last value from previous extractor in a chain).
* @param state The working memory.
*/
public Object getValue(Tuple left, Object right, Object prefix, IOAVState state)
{
// Extract parameters
Object[] paramvalues = new Object[parameters.length];
for(int i=0; i0)
ret.append(", ");
ret.append(parameters[i]);
}
ret.append(")");
return ret.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy