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

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