@Override public boolean filter() { Expr exp = eval.getEvaluator().getDefineMetadata(getEnvironment(), FILTER, 3); return (exp != null); }
@Override public boolean filter() { Expr exp = eval.getEvaluator().getDefineMetadata(getEnvironment(), FILTER, 3); return (exp != null); }
boolean define(String name, int arity) { Expr exp = eval.getEvaluator().getDefineMetadata(getEnvironment(), name, arity); return (exp != null); }
boolean define(String name, int arity) { Expr exp = eval.getEvaluator().getDefineMetadata(getEnvironment(), name, arity); return (exp != null); }
/** * @eq function us:eq(?e, ?x, ?y) * @error function us:error(?e, ?x, ?y) * Function call is performed even if Visitor is inactive * use case: @select function execute ?a = ?b on extension datatype * we want @eq function us:eq(?e, ?x, ?y) to handle ?a = ?b */ public IDatatype callbackBasic(Eval ev, String metadata, IDatatype[] param) { trace(ev, metadata, param); Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, param.length); if (function != null) { return call(function, param, ev.getEvaluator(), ev.getEnvironment(), ev.getProducer()); } return null; }
/** * @eq function us:eq(?e, ?x, ?y) * @error function us:error(?e, ?x, ?y) * Function call is performed even if Visitor is inactive * use case: @select function execute ?a = ?b on extension datatype * we want @eq function us:eq(?e, ?x, ?y) to handle ?a = ?b */ public IDatatype callbackBasic(Eval ev, String metadata, IDatatype[] param) { trace(ev, metadata, param); Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, param.length); if (function != null) { return call(function, param, ev.getEvaluator(), ev.getEnvironment(), ev.getProducer()); } return null; }
/** * @before function us:before(?q) * call function us:before * set Visitor as inactive during function call to prevent loop and also in case where * function execute a query (which would trigger Visitor recursively) */ public IDatatype callback(Eval ev, String metadata, IDatatype[] param) { if (isActive() || ! accept(metadata)) { return null; } trace(ev, metadata, param); Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, param.length); if (function != null) { // prevent infinite loop in case where there is a query in the function setActive(true); IDatatype dt = call(function, param, ev.getEvaluator(), ev.getEnvironment(), ev.getProducer()); setActive(false); return dt; } return null; }
/** * @before function us:before(?q) * call function us:before * set Visitor as inactive during function call to prevent loop and also in case where * function execute a query (which would trigger Visitor recursively) */ public IDatatype callback(Eval ev, String metadata, IDatatype[] param) { if (isActive() || ! accept(metadata)) { return null; } trace(ev, metadata, param); Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, param.length); if (function != null) { // prevent infinite loop in case where there is a query in the function setActive(true); IDatatype dt = call(function, param, ev.getEvaluator(), ev.getEnvironment(), ev.getProducer()); setActive(false); return dt; } return null; }
IDatatype sort(Eval ev, String metadata, IDatatype[] param) { if (isActive() || ! accept(metadata)) { return null; } // function us:compare(?m1, ?m2) Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, 2); if (function != null) { // prevent infinite loop in case where there is a query in the function setActive(true); IDatatype dt = new ListSort("sort").sort((Computer) ev.getEvaluator(), (Binding) ev.getEnvironment().getBind(), ev.getEnvironment(), ev.getProducer(), function, param[0] ); setActive(false); return dt; } return null; }
IDatatype sort(Eval ev, String metadata, IDatatype[] param) { if (isActive() || ! accept(metadata)) { return null; } // function us:compare(?m1, ?m2) Function function = (Function) eval.getEvaluator().getDefineMetadata(getEnvironment(), metadata, 2); if (function != null) { // prevent infinite loop in case where there is a query in the function setActive(true); IDatatype dt = new ListSort("sort").sort((Computer) ev.getEvaluator(), (Binding) ev.getEnvironment().getBind(), ev.getEnvironment(), ev.getProducer(), function, param[0] ); setActive(false); return dt; } return null; }