/** * 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(final Tuple left, final Object right, final Object prefix, final IOAVState state) { // Fetch the parameter values. Object[] paramvalues = new Object[extractors.length]; for(int i=0; i<paramvalues.length; i++) { //paramvalues[i] = extractors[i].getValue(left, right, prefix, state); final IValueExtractor ex = extractors[i]; paramvalues[i] = new ILazyValue() { public Object getValue() { return ex.getValue(left, right, prefix, state); } }; } // Invoke the function and return the value. Object ret = function.invoke(paramvalues, state); // System.out.println("Funcall result: "+this+" "+ret); return ret; }
/** * Test for equality. * @param obj The object. * @return True if operator. */ public boolean equals(Object obj) { return (obj instanceof OperatorFunction) && ((OperatorFunction)obj).getOperator().equals(operator); }
/** * Test if a constraint evaluator is affected from a * change of a certain attribute. * @param tupleindex The tuple index. * @param attr The attribute. * @return True, if affected. */ public boolean isAffected(int tupleindex, OAVAttributeType attr) { boolean ret = false; for(int i=0; !ret && i<extractors.length; i++) { ret = extractors[i].isAffected(tupleindex, attr); } if(!ret) ret = function.getRelevantAttributes().contains(attr); return ret; }
IFunction func = new OperatorFunction(op!=null? op: IOperator.EQUAL); fc = new FunctionCall(func, new Object[]{exp1, exp2});
FunctionCall fc_num = new FunctionCall(new Length(), new Object[]{samegoals}); FunctionCall fc_numcard = new FunctionCall(new OperatorFunction(IOperator.GREATEROREQUAL), new Object[]{fc_num, cardinality}); cardcon.addConstraint(new PredicateConstraint(fc_numcard));
/** * * @param tmodel * @param valuesource * @return */ protected static OAVObjectType getValueSourceType(OAVTypeModel tmodel, Object valuesource) { OAVObjectType ret = null; if(valuesource instanceof OAVAttributeType) { ret = ((OAVAttributeType)valuesource).getType(); } else if(valuesource instanceof MethodCall) { Class rettype = ((MethodCall)valuesource).getMethod().getReturnType(); if(rettype!=null) ret = tmodel.getJavaType(rettype); } else if(valuesource instanceof FunctionCall) { Class rettype = ((FunctionCall)valuesource).getFunction().getReturnType(); if(rettype!=null) ret = tmodel.getJavaType(rettype); } return ret; }
IFunction func = new OperatorFunction(op!=null? op: IOperator.EQUAL); fc = new FunctionCall(func, new Object[]{exp1, exp2});
/** * Test for equality. * @param obj The object. * @return True if operator. */ public boolean equals(Object obj) { return (obj instanceof OperatorFunction) && ((OperatorFunction)obj).getOperator().equals(operator); }
/** * Test if a constraint evaluator is affected from a * change of a certain attribute. * @param tupleindex The tuple index. * @param attr The attribute. * @return True, if affected. */ public boolean isAffected(int tupleindex, OAVAttributeType attr) { boolean ret = false; for(int i=0; !ret && i<extractors.length; i++) { ret = extractors[i].isAffected(tupleindex, attr); } if(!ret) ret = function.getRelevantAttributes().contains(attr); return ret; }
/** * * @param tmodel * @param valuesource * @return */ protected static OAVObjectType getValueSourceType(OAVTypeModel tmodel, Object valuesource) { OAVObjectType ret = null; if(valuesource instanceof OAVAttributeType) { ret = ((OAVAttributeType)valuesource).getType(); } else if(valuesource instanceof MethodCall) { Class rettype = ((MethodCall)valuesource).getMethod().getReturnType(); if(rettype!=null) ret = tmodel.getJavaType(rettype); } else if(valuesource instanceof FunctionCall) { Class rettype = ((FunctionCall)valuesource).getFunction().getReturnType(); if(rettype!=null) ret = tmodel.getJavaType(rettype); } return ret; }
/** * 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(final Tuple left, final Object right, final Object prefix, final IOAVState state) { // Fetch the parameter values. Object[] paramvalues = new Object[extractors.length]; for(int i=0; i<paramvalues.length; i++) { //paramvalues[i] = extractors[i].getValue(left, right, prefix, state); final IValueExtractor ex = extractors[i]; paramvalues[i] = new ILazyValue() { public Object getValue() { return ex.getValue(left, right, prefix, state); } }; } // Invoke the function and return the value. Object ret = function.invoke(paramvalues, state); // System.out.println("Funcall result: "+this+" "+ret); return ret; }
new OperatorFunction(op), new Object[]{((VariableExpression)left).getVariable(), rightsource})));
if(func.getFunction() instanceof OperatorFunction && ((OperatorFunction)func.getFunction()).getOperator().equals(IOperator.EQUAL))
/** * Get the set of relevant attribute types. */ public AttributeSet getRelevantAttributes() { AttributeSet ret = new AttributeSet(); for(int i=0; i<extractors.length; i++) ret.addAll(extractors[i].getRelevantAttributes()); // System.out.println("function: "+function.getClass()); ret.addAll(function.getRelevantAttributes()); return ret; }
ret = tmodel.getJavaType(((FunctionCall)valuesource).getFunction().getReturnType());
new OperatorFunction(op), new Object[]{((VariableExpression)left).getVariable(), rightsource})));
if(func.getFunction() instanceof OperatorFunction && ((OperatorFunction)func.getFunction()).getOperator().equals(IOperator.EQUAL))
/** * Get the set of relevant attribute types. */ public AttributeSet getRelevantAttributes() { AttributeSet ret = new AttributeSet(); for(int i=0; i<extractors.length; i++) ret.addAll(extractors[i].getRelevantAttributes()); // System.out.println("function: "+function.getClass()); ret.addAll(function.getRelevantAttributes()); return ret; }
ret = tmodel.getJavaType(((FunctionCall)valuesource).getFunction().getReturnType());
func = (IFunction)opex.getOperator(); else func = new OperatorFunction((IOperator)opex.getOperator());