blob: 493bf6c2b9623f616518b6df9d6acdc0af98b97c [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ExprNode (Apache Jena ARQ)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: org.apache.jena.arq, package: org.apache.jena.sparql.expr, class: ExprNode">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ExprNode.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">org.apache.jena.arq</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.jena.sparql.expr</a></div>
<h1 title="Class ExprNode" class="title">Class ExprNode</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.jena.sparql.expr.ExprNode</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="ExprAggregator.html" title="class in org.apache.jena.sparql.expr">ExprAggregator</a></code>, <code><a href="ExprFunction.html" title="class in org.apache.jena.sparql.expr">ExprFunction</a></code>, <code><a href="ExprNone.html" title="class in org.apache.jena.sparql.expr">ExprNone</a></code>, <code><a href="ExprTripleTerm.html" title="class in org.apache.jena.sparql.expr">ExprTripleTerm</a></code>, <code><a href="ExprVar.html" title="class in org.apache.jena.sparql.expr">ExprVar</a></code>, <code><a href="NodeValue.html" title="class in org.apache.jena.sparql.expr">NodeValue</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">ExprNode</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></span></div>
<div class="block">A node that is a constraint expression that can be evaluated
An <a href="Expr.html" title="interface in org.apache.jena.sparql.expr"><code>Expr</code></a> is already a Constraint - ExprNode is the base implementation
of all <a href="Expr.html" title="interface in org.apache.jena.sparql.expr"><code>Expr</code></a> classes that provides the Constraint machinery.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.jena.sparql.expr.Expr">Fields inherited from interface&nbsp;org.apache.jena.sparql.expr.<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></h3>
<code><a href="Expr.html#CMP_EQUAL">CMP_EQUAL</a>, <a href="Expr.html#CMP_GREATER">CMP_GREATER</a>, <a href="Expr.html#CMP_INDETERMINATE">CMP_INDETERMINATE</a>, <a href="Expr.html#CMP_LESS">CMP_LESS</a>, <a href="Expr.html#CMP_UNEQUAL">CMP_UNEQUAL</a>, <a href="Expr.html#NONE">NONE</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ExprNode</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#applyNodeTransform(org.apache.jena.sparql.graph.NodeTransform)" class="member-name-link">applyNodeTransform</a><wbr>(<a href="../graph/NodeTransform.html" title="interface in org.apache.jena.sparql.graph">NodeTransform</a>&nbsp;transform)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Rewrite, applying a node-&gt;node transformation</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../core/Var.html" title="class in org.apache.jena.sparql.core">Var</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#asVar()" class="member-name-link">asVar</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Convert to a Var variable.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#copySubstitute(org.apache.jena.sparql.engine.binding.Binding)" class="member-name-link">copySubstitute</a><wbr>(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Deep copy with substitution</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#deepCopy()" class="member-name-link">deepCopy</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Deep copy</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;other)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#equals(org.apache.jena.sparql.expr.Expr,boolean)" class="member-name-link">equals</a><wbr>(<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a>&nbsp;other,
boolean&nbsp;bySyntax)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">General equality operation - consider this to be 'protected'</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equalsBySyntax(org.apache.jena.sparql.expr.Expr)" class="member-name-link">equalsBySyntax</a><wbr>(<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a>&nbsp;other)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="NodeValue.html" title="class in org.apache.jena.sparql.expr">NodeValue</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#eval(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)" class="member-name-link">eval</a><wbr>(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding,
<a href="../function/FunctionEnv.html" title="interface in org.apache.jena.sparql.function">FunctionEnv</a>&nbsp;env)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Evaluate this expression against the binding</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="NodeValue.html" title="class in org.apache.jena.sparql.expr">NodeValue</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getConstant()" class="member-name-link">getConstant</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">NodeValue constant (returns null if not a constant)</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getExpr()" class="member-name-link">getExpr</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ExprVar.html" title="class in org.apache.jena.sparql.expr">ExprVar</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getExprVar()" class="member-name-link">getExprVar</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Variable (or null)</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ExprFunction.html" title="class in org.apache.jena.sparql.expr">ExprFunction</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFunction()" class="member-name-link">getFunction</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get the function (returns null if not a function)</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../algebra/Op.html" title="interface in org.apache.jena.sparql.algebra">Op</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getGraphPattern()" class="member-name-link">getGraphPattern</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVarName()" class="member-name-link">getVarName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Variable name (returns null if not a variable)</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../core/Var.html" title="class in org.apache.jena.sparql.core">Var</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVarsMentioned()" class="member-name-link">getVarsMentioned</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Variables used by this expression.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block"><code>Expr</code> are used in both syntax and algebra.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isConstant()" class="member-name-link">isConstant</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Answer whether this is a constant expression - false includes "don't know"
No constant folding so "false" from an expression that evaluates to a constant</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isExpr()" class="member-name-link">isExpr</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isFunction()" class="member-name-link">isFunction</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Answer whether this is a function.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isGraphPattern()" class="member-name-link">isGraphPattern</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSatisfied(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)" class="member-name-link">isSatisfied</a><wbr>(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding,
<a href="../function/FunctionEnv.html" title="interface in org.apache.jena.sparql.function">FunctionEnv</a>&nbsp;funcEnv)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Test whether a Constraint is satisfied, given a set of bindings
Includes error propagation and Effective Boolean Value rules.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isVariable()" class="member-name-link">isVariable</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Answer whether this is a variable.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jena.sparql.expr.Expr">Methods inherited from interface&nbsp;org.apache.jena.sparql.expr.<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></h3>
<code><a href="Expr.html#visit(org.apache.jena.sparql.expr.ExprVisitor)">visit</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ExprNode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ExprNode</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="isSatisfied(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">
<h3>isSatisfied</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSatisfied</span><wbr><span class="parameters">(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding,
<a href="../function/FunctionEnv.html" title="interface in org.apache.jena.sparql.function">FunctionEnv</a>&nbsp;funcEnv)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#isSatisfied(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">Expr</a></code></span></div>
<div class="block">Test whether a Constraint is satisfied, given a set of bindings
Includes error propagation and Effective Boolean Value rules.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#isSatisfied(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">isSatisfied</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
<dt>Parameters:</dt>
<dd><code>binding</code> - The bindings</dd>
<dd><code>funcEnv</code> - FunctionEnv</dd>
<dt>Returns:</dt>
<dd>true or false</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isExpr()">
<h3>isExpr</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isExpr</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getExpr()">
<h3>getExpr</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></span>&nbsp;<span class="element-name">getExpr</span>()</div>
</section>
</li>
<li>
<section class="detail" id="eval(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">
<h3>eval</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="NodeValue.html" title="class in org.apache.jena.sparql.expr">NodeValue</a></span>&nbsp;<span class="element-name">eval</span><wbr><span class="parameters">(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding,
<a href="../function/FunctionEnv.html" title="interface in org.apache.jena.sparql.function">FunctionEnv</a>&nbsp;env)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#eval(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">Expr</a></code></span></div>
<div class="block">Evaluate this expression against the binding</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#eval(org.apache.jena.sparql.engine.binding.Binding,org.apache.jena.sparql.function.FunctionEnv)">eval</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVarsMentioned()">
<h3>getVarsMentioned</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../core/Var.html" title="class in org.apache.jena.sparql.core">Var</a>&gt;</span>&nbsp;<span class="element-name">getVarsMentioned</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#getVarsMentioned()">Expr</a></code></span></div>
<div class="block">Variables used by this expression.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#getVarsMentioned()">getVarsMentioned</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="ExprVars.html#getVarNamesMentioned(org.apache.jena.sparql.expr.Expr)"><code>ExprVars.getVarNamesMentioned(org.apache.jena.sparql.expr.Expr)</code></a></li>
<li><a href="ExprVars.html#getNonOpVarNamesMentioned(org.apache.jena.sparql.expr.Expr)"><code>ExprVars.getNonOpVarNamesMentioned(org.apache.jena.sparql.expr.Expr)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#hashCode()">Expr</a></code></span></div>
<div class="block"><code>Expr</code> are used in both syntax and algebra. There is no syntax
to algebra translation step because the parser uses operator precedence
to build the right evaluation structure directly.
<p>
The exceptions to this are the <code>NOT EXISTS</code> and
<code>EXISTS</code> expressions which involve a query pattern. As a
result there are different ways in syntax to produce the same algebra
form.
<p>
Two <code>Expr</code> are considered equal if they are equal as algebra
expressions. <code>hashCode</code> and <code>equals</code> must implement
that.
<p>
There is also <code>equalsBySyntax</code>. Because two different syntax
forms can yield the same algebra, but two different algebra forms
must be different syntax, <code>equalsBySyntax</code> implies <code>equals</code>
(by algebra).
<p>
Hence, different <code>hashCode</code> =&gt; not <code>equalsBySyntax</code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#hashCode()">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;other)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#equals(java.lang.Object)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equalsBySyntax(org.apache.jena.sparql.expr.Expr)">
<h3>equalsBySyntax</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equalsBySyntax</span><wbr><span class="parameters">(<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a>&nbsp;other)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#equalsBySyntax(org.apache.jena.sparql.expr.Expr)">equalsBySyntax</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(org.apache.jena.sparql.expr.Expr,boolean)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a>&nbsp;other,
boolean&nbsp;bySyntax)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#equals(org.apache.jena.sparql.expr.Expr,boolean)">Expr</a></code></span></div>
<div class="block">General equality operation - consider this to be 'protected'</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#equals(org.apache.jena.sparql.expr.Expr,boolean)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deepCopy()">
<h3>deepCopy</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></span>&nbsp;<span class="element-name">deepCopy</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#deepCopy()">Expr</a></code></span></div>
<div class="block">Deep copy</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#deepCopy()">deepCopy</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="copySubstitute(org.apache.jena.sparql.engine.binding.Binding)">
<h3>copySubstitute</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></span>&nbsp;<span class="element-name">copySubstitute</span><wbr><span class="parameters">(<a href="../engine/binding/Binding.html" title="interface in org.apache.jena.sparql.engine.binding">Binding</a>&nbsp;binding)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#copySubstitute(org.apache.jena.sparql.engine.binding.Binding)">Expr</a></code></span></div>
<div class="block">Deep copy with substitution</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#copySubstitute(org.apache.jena.sparql.engine.binding.Binding)">copySubstitute</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="applyNodeTransform(org.apache.jena.sparql.graph.NodeTransform)">
<h3>applyNodeTransform</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></span>&nbsp;<span class="element-name">applyNodeTransform</span><wbr><span class="parameters">(<a href="../graph/NodeTransform.html" title="interface in org.apache.jena.sparql.graph">NodeTransform</a>&nbsp;transform)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#applyNodeTransform(org.apache.jena.sparql.graph.NodeTransform)">Expr</a></code></span></div>
<div class="block">Rewrite, applying a node-&gt;node transformation</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#applyNodeTransform(org.apache.jena.sparql.graph.NodeTransform)">applyNodeTransform</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isVariable()">
<h3>isVariable</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isVariable</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#isVariable()">Expr</a></code></span></div>
<div class="block">Answer whether this is a variable.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#isVariable()">isVariable</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVarName()">
<h3>getVarName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getVarName</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#getVarName()">Expr</a></code></span></div>
<div class="block">Variable name (returns null if not a variable)</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#getVarName()">getVarName</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExprVar()">
<h3>getExprVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ExprVar.html" title="class in org.apache.jena.sparql.expr">ExprVar</a></span>&nbsp;<span class="element-name">getExprVar</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#getExprVar()">Expr</a></code></span></div>
<div class="block">Variable (or null)</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#getExprVar()">getExprVar</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="asVar()">
<h3>asVar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../core/Var.html" title="class in org.apache.jena.sparql.core">Var</a></span>&nbsp;<span class="element-name">asVar</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#asVar()">Expr</a></code></span></div>
<div class="block">Convert to a Var variable.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#asVar()">asVar</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isConstant()">
<h3>isConstant</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isConstant</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#isConstant()">Expr</a></code></span></div>
<div class="block">Answer whether this is a constant expression - false includes "don't know"
No constant folding so "false" from an expression that evaluates to a constant</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#isConstant()">isConstant</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getConstant()">
<h3>getConstant</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="NodeValue.html" title="class in org.apache.jena.sparql.expr">NodeValue</a></span>&nbsp;<span class="element-name">getConstant</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#getConstant()">Expr</a></code></span></div>
<div class="block">NodeValue constant (returns null if not a constant)</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#getConstant()">getConstant</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isFunction()">
<h3>isFunction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isFunction</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#isFunction()">Expr</a></code></span></div>
<div class="block">Answer whether this is a function.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#isFunction()">isFunction</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFunction()">
<h3>getFunction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ExprFunction.html" title="class in org.apache.jena.sparql.expr">ExprFunction</a></span>&nbsp;<span class="element-name">getFunction</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="Expr.html#getFunction()">Expr</a></code></span></div>
<div class="block">Get the function (returns null if not a function)</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Expr.html#getFunction()">getFunction</a></code>&nbsp;in interface&nbsp;<code><a href="Expr.html" title="interface in org.apache.jena.sparql.expr">Expr</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isGraphPattern()">
<h3>isGraphPattern</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isGraphPattern</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getGraphPattern()">
<h3>getGraphPattern</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../algebra/Op.html" title="interface in org.apache.jena.sparql.algebra">Op</a></span>&nbsp;<span class="element-name">getGraphPattern</span>()</div>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Licensed under the Apache License, Version 2.0</small></p>
</footer>
</div>
</div>
</body>
</html>