| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (17) --> |
| <title>Transactional (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.core, interface: Transactional"> |
| <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/Transactional.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: </li> |
| <li><a href="#nested-class-summary">Nested</a> | </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li>Constr | </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> <a href="../../../../../module-summary.html">org.apache.jena.arq</a></div> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.jena.sparql.core</a></div> |
| <h1 title="Interface Transactional" class="title">Interface Transactional</h1> |
| </div> |
| <section class="class-description" id="class-description"> |
| <dl class="notes"> |
| <dt>All Known Subinterfaces:</dt> |
| <dd><code><a href="../../query/Dataset.html" title="interface in org.apache.jena.query">Dataset</a></code>, <code><a href="DatasetGraph.html" title="interface in org.apache.jena.sparql.core">DatasetGraph</a></code>, <code><a href="../../system/buffering/DatasetGraphBuffering.html" title="interface in org.apache.jena.system.buffering">DatasetGraphBuffering</a></code>, <code><a href="DatasetGraphWrapperView.html" title="interface in org.apache.jena.sparql.core">DatasetGraphWrapperView</a></code>, <code><a href="TransactionalNotSupportedMixin.html" title="interface in org.apache.jena.sparql.core">TransactionalNotSupportedMixin</a></code>, <code><a href="TransactionalTrait.html" title="interface in org.apache.jena.sparql.core">TransactionalTrait</a></code></dd> |
| </dl> |
| <dl class="notes"> |
| <dt>All Known Implementing Classes:</dt> |
| <dd><code><a href="../../system/buffering/BufferingDatasetGraph.html" title="class in org.apache.jena.system.buffering">BufferingDatasetGraph</a></code>, <code><a href="DatasetGraphBase.html" title="class in org.apache.jena.sparql.core">DatasetGraphBase</a></code>, <code><a href="DatasetGraphBaseFind.html" title="class in org.apache.jena.sparql.core">DatasetGraphBaseFind</a></code>, <code><a href="DatasetGraphCollection.html" title="class in org.apache.jena.sparql.core">DatasetGraphCollection</a></code>, <code><a href="DatasetGraphFilteredView.html" title="class in org.apache.jena.sparql.core">DatasetGraphFilteredView</a></code>, <code><a href="mem/DatasetGraphInMemory.html" title="class in org.apache.jena.sparql.core.mem">DatasetGraphInMemory</a></code>, <code><a href="DatasetGraphMap.html" title="class in org.apache.jena.sparql.core">DatasetGraphMap</a></code>, <code><a href="DatasetGraphMapLink.html" title="class in org.apache.jena.sparql.core">DatasetGraphMapLink</a></code>, <code><a href="DatasetGraphNull.html" title="class in org.apache.jena.sparql.core">DatasetGraphNull</a></code>, <code><a href="DatasetGraphOne.html" title="class in org.apache.jena.sparql.core">DatasetGraphOne</a></code>, <code><a href="DatasetGraphQuads.html" title="class in org.apache.jena.sparql.core">DatasetGraphQuads</a></code>, <code><a href="../../rdfs/DatasetGraphRDFS.html" title="class in org.apache.jena.rdfs">DatasetGraphRDFS</a></code>, <code><a href="DatasetGraphReadOnly.html" title="class in org.apache.jena.sparql.core">DatasetGraphReadOnly</a></code>, <code><a href="DatasetGraphSink.html" title="class in org.apache.jena.sparql.core">DatasetGraphSink</a></code>, <code><a href="DatasetGraphTriplesQuads.html" title="class in org.apache.jena.sparql.core">DatasetGraphTriplesQuads</a></code>, <code><a href="DatasetGraphWrapper.html" title="class in org.apache.jena.sparql.core">DatasetGraphWrapper</a></code>, <code><a href="DatasetGraphZero.html" title="class in org.apache.jena.sparql.core">DatasetGraphZero</a></code>, <code><a href="DatasetImpl.html" title="class in org.apache.jena.sparql.core">DatasetImpl</a></code>, <code><a href="../util/DifferenceDatasetGraph.html" title="class in org.apache.jena.sparql.util">DifferenceDatasetGraph</a></code>, <code><a href="../util/DyadicDatasetGraph.html" title="class in org.apache.jena.sparql.util">DyadicDatasetGraph</a></code>, <code><a href="DynamicDatasets.DynamicDatasetGraph.html" title="class in org.apache.jena.sparql.core">DynamicDatasets.DynamicDatasetGraph</a></code>, <code><a href="../graph/GraphTxn.html" title="class in org.apache.jena.sparql.graph">GraphTxn</a></code>, <code><a href="../util/IntersectionDatasetGraph.html" title="class in org.apache.jena.sparql.util">IntersectionDatasetGraph</a></code>, <code><a href="TransactionalLock.html" title="class in org.apache.jena.sparql.core">TransactionalLock</a></code>, <code><a href="TransactionalNotSupported.html" title="class in org.apache.jena.sparql.core">TransactionalNotSupported</a></code>, <code><a href="TransactionalNull.html" title="class in org.apache.jena.sparql.core">TransactionalNull</a></code>, <code><a href="../../system/TxnCounter.html" title="class in org.apache.jena.system">TxnCounter</a></code>, <code><a href="TxnDataset2Graph.html" title="class in org.apache.jena.sparql.core">TxnDataset2Graph</a></code>, <code><a href="../util/UnionDatasetGraph.html" title="class in org.apache.jena.sparql.util">UnionDatasetGraph</a></code></dd> |
| </dl> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Transactional</span></div> |
| <div class="block">Interface that encapsulates the begin/abort|commit/end operations. |
| <p>The read lifecycle is: |
| <pre> begin(READ) ... end()</pre> |
| <p><code>commit</code> and <code>abort</code> are allowed. |
| <p>The write lifecycle is: |
| <pre> begin(WRITE) ... abort() or commit() end()</pre> |
| <p><code>end()</code> is optional for "write" but is preferred. |
| </p> |
| <h4>Application use</h4> |
| Applications can conveniently execute the lifecycle with methods to read or write: |
| <pre>dataset.executeRead(()-> { ... sparql query ... });</pre> |
| <pre>dataset.executeWrite(()-> { ... sparql update ... });</pre> |
| <p> |
| Use one of <code>calculateRead</code> or <code>calculateWrite</code> |
| to return a value for the transaction block. |
| </p> |
| <h4>Core Functionality</h4> |
| Directly called, code might look like: |
| <pre> |
| Transactional object = ... |
| object.begin(TxnMode.READ) ; |
| try { |
| ... actions inside a read transaction ... |
| } finally { object.end() ; } |
| </pre> |
| |
| <p>or</p> |
| |
| <pre> |
| Transactional object = ... |
| object.begin(TxnMode.WRITE) ; |
| try { |
| ... actions inside a write transaction ... |
| object.commit() ; |
| } finally { |
| // This causes an abort if <code>commit</code> has not been called. |
| object.end() ; |
| } |
| </pre></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../system/Txn.html" title="class in org.apache.jena.system"><code>Txn</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested-class-summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Interface</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>static enum </code></div> |
| <div class="col-second even-row-color"><code><a href="Transactional.Promote.html" class="type-name-link" title="enum class in org.apache.jena.sparql.core">Transactional.Promote</a></code></div> |
| <div class="col-last even-row-color"> </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-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default 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>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#abort()" class="member-name-link">abort</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Abort a transaction - finish the transaction and undo any changes (if a "write" transaction)</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#begin()" class="member-name-link">begin</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Start a transaction which is READ mode and which will switch to WRITE if an update |
| is attempted but only if no intermediate transaction has performed an update.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#begin(org.apache.jena.query.ReadWrite)" class="member-name-link">begin</a><wbr>(<a href="../../query/ReadWrite.html" title="enum class in org.apache.jena.query">ReadWrite</a> readWrite)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Start either a READ or WRITE transaction.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#begin(org.apache.jena.query.TxnType)" class="member-name-link">begin</a><wbr>(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> type)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Start a transaction.<br/> |
| READ or WRITE transactions start in that state and do not change for the |
| lifetime of the transaction.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <T> T</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#calc(org.apache.jena.query.TxnType,java.util.function.Supplier)" class="member-name-link">calc</a><wbr>(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> txnType, |
| <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><T> action)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute and return a value in a transaction with the given <a href="../../query/TxnType.html" title="enum class in org.apache.jena.query"><code>transaction type</code></a>.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <X> X</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#calculate(java.util.function.Supplier)" class="member-name-link">calculate</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute in a "read" transaction that can promote to "write" and return some calculated value.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <X> X</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#calculateRead(java.util.function.Supplier)" class="member-name-link">calculateRead</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute and return a value in a read transaction</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <X> X</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#calculateWrite(java.util.function.Supplier)" class="member-name-link">calculateWrite</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute and return a value in a write transaction.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#commit()" class="member-name-link">commit</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Commit a transaction - finish the transaction and make any changes permanent (if a "write" transaction)</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#end()" class="member-name-link">end</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Finish the transaction - if a write transaction and commit() has not been called, then abort</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#exec(org.apache.jena.query.TxnType,java.lang.Runnable)" class="member-name-link">exec</a><wbr>(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> txnType, |
| <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> action)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute application code in a transaction with the given <a href="../../query/TxnType.html" title="enum class in org.apache.jena.query"><code>transaction type</code></a>.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#execute(java.lang.Runnable)" class="member-name-link">execute</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute in a "read" transaction that can promote to "write".</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <T extends <a href="Transactional.html" title="interface in org.apache.jena.sparql.core">Transactional</a>><br>void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#executeRead(java.lang.Runnable)" class="member-name-link">executeRead</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute in a read transaction</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#executeWrite(java.lang.Runnable)" class="member-name-link">executeWrite</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Execute the Runnable in a write transaction</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isInTransaction()" class="member-name-link">isInTransaction</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Say whether inside a transaction.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#promote()" class="member-name-link">promote</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"> |
| <div class="block">Attempt to promote a transaction from "read" to "write" when the transaction |
| started with a "promote" mode (<code>READ_PROMOTE</code> or |
| <code>READ_COMMITTED_PROMOTE</code>).</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#promote(org.apache.jena.sparql.core.Transactional.Promote)" class="member-name-link">promote</a><wbr>(<a href="Transactional.Promote.html" title="enum class in org.apache.jena.sparql.core">Transactional.Promote</a> mode)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Attempt to promote a transaction from "read" mode to "write" and the transaction.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../query/ReadWrite.html" title="enum class in org.apache.jena.query">ReadWrite</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#transactionMode()" class="member-name-link">transactionMode</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Return the current mode of the transaction - "read" or "write".</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#transactionType()" class="member-name-link">transactionType</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> |
| <div class="block">Return the transaction type used in <code>begin(TxnType)</code>.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <section class="details"> |
| <ul class="details-list"> |
| <!-- ============ METHOD DETAIL ========== --> |
| <li> |
| <section class="method-details" id="method-detail"> |
| <h2>Method Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="begin()"> |
| <h3>begin</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">void</span> <span class="element-name">begin</span>()</div> |
| <div class="block">Start a transaction which is READ mode and which will switch to WRITE if an update |
| is attempted but only if no intermediate transaction has performed an update. |
| <p> |
| See <a href="#begin(org.apache.jena.query.TxnType)"><code>begin(TxnType)</code></a> for more details an options. |
| <p> |
| May not be implemented. See <a href="#begin(org.apache.jena.query.ReadWrite)"><code>begin(ReadWrite)</code></a> is guaranteed to be provided.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="begin(org.apache.jena.query.TxnType)"> |
| <h3>begin</h3> |
| <div class="member-signature"><span class="return-type">void</span> <span class="element-name">begin</span><wbr><span class="parameters">(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> type)</span></div> |
| <div class="block">Start a transaction.<br/> |
| READ or WRITE transactions start in that state and do not change for the |
| lifetime of the transaction. |
| <ul> |
| |
| <li><code>WRITE</code>: this guarantees a WRITE will complete if <code>commit()</code> is |
| called. The same as <code>begin(ReadWrite.WRITE)</code>. |
| |
| <li><code>READ</code>: the transaction can not promote to WRITE,ensuring read-only |
| access to the data. The same as <code>begin(ReadWrite.READ)</code>. |
| |
| <li><code>READ_PROMOTE</code>: the transaction will go from "read" to "write" if an |
| update is attempted and if the dataset has not been changed by another write |
| transaction. See also <a href="#promote()"><code>promote()</code></a>. |
| |
| <li><code>READ_COMMITTED_PROMOTE</code>: Use this with care. The promotion will |
| succeed but changes from other transactions become visible. |
| |
| </ul> |
| |
| Read committed: at the point transaction attempts promotion from "read" to |
| "write", the system checks if the dataset has change since the transaction started |
| (called <code>begin</code>). If <code>READ_PROMOTE</code>, the dataset must not have |
| changed; if <code>READ_COMMITTED_PROMOTE</code> any intermediate changes are |
| visible but the application can not assume any data it has read in the |
| transaction is the same as it was at the point the transaction started. |
| <p> |
| This operation is optional and some implementations may throw |
| a <a href="../JenaTransactionException.html" title="class in org.apache.jena.sparql"><code>JenaTransactionException</code></a> exception for some or all <a href="../../query/TxnType.html" title="enum class in org.apache.jena.query"><code>TxnType</code></a> values. |
| <p> |
| See <a href="#begin(org.apache.jena.query.ReadWrite)"><code>begin(ReadWrite)</code></a> for a form that is required of implementations.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="begin(org.apache.jena.query.ReadWrite)"> |
| <h3>begin</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">void</span> <span class="element-name">begin</span><wbr><span class="parameters">(<a href="../../query/ReadWrite.html" title="enum class in org.apache.jena.query">ReadWrite</a> readWrite)</span></div> |
| <div class="block">Start either a READ or WRITE transaction.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="promote()"> |
| <h3>promote</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">boolean</span> <span class="element-name">promote</span>()</div> |
| <div class="block">Attempt to promote a transaction from "read" to "write" when the transaction |
| started with a "promote" mode (<code>READ_PROMOTE</code> or |
| <code>READ_COMMITTED_PROMOTE</code>). |
| <p> |
| Returns "true" if the transaction is in write mode after the call. The method |
| always succeeds of the transaction is already "write". |
| <p> |
| A <code>READ_COMMITTED_PROMOTE</code> can always be promoted, but the call may need to |
| wait. |
| <p> |
| This method returns true if a <code>READ_PROMOTE</code> or |
| <code>READ_COMMITTED_PROMOTE</code> is promoted. |
| <p> |
| This method returns false if a <code>READ_PROMOTE</code> can't be promoted - the |
| transaction is still valid and in "read" mode. Any further calls to |
| <code>promote()</code> will also return false. |
| <p> |
| This method returns false if there is an attempt to promote a "READ" transaction.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="promote(org.apache.jena.sparql.core.Transactional.Promote)"> |
| <h3>promote</h3> |
| <div class="member-signature"><span class="return-type">boolean</span> <span class="element-name">promote</span><wbr><span class="parameters">(<a href="Transactional.Promote.html" title="enum class in org.apache.jena.sparql.core">Transactional.Promote</a> mode)</span></div> |
| <div class="block">Attempt to promote a transaction from "read" mode to "write" and the transaction. This |
| method allows the form of promotion to be specified. The transaction must not have been started |
| with <code>READ</code>, which is read-only. |
| <p> |
| An argument of <code>READ_PROMOTE</code> treats the promotion as if the transaction was started |
| with <code>READ_PROMOTE</code> (any other writer commiting since the transaction started |
| blocks promotion) and <code>READ_COMMITTED_PROMOTE</code> treats the promotion as if the transaction was started |
| with <code>READ_COMMITTED_PROMOTE</code> (intemediate writer commits become visible). |
| <p> |
| Returns "true" if the transaction is in write mode after the call. The method |
| always succeeds of the transaction is already "write". |
| <p> |
| This method returns true if a <code>READ_PROMOTE</code> or |
| <code>READ_COMMITTED_PROMOTE</code> is promoted. |
| <p> |
| This method returns false if a <code>READ_PROMOTE</code> can't be promoted - the |
| transaction is still valid and in "read" mode. |
| <p> |
| This method throws an exception if there is an attempt to promote a <code>READ</code> |
| transaction.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="commit()"> |
| <h3>commit</h3> |
| <div class="member-signature"><span class="return-type">void</span> <span class="element-name">commit</span>()</div> |
| <div class="block">Commit a transaction - finish the transaction and make any changes permanent (if a "write" transaction)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="abort()"> |
| <h3>abort</h3> |
| <div class="member-signature"><span class="return-type">void</span> <span class="element-name">abort</span>()</div> |
| <div class="block">Abort a transaction - finish the transaction and undo any changes (if a "write" transaction)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="end()"> |
| <h3>end</h3> |
| <div class="member-signature"><span class="return-type">void</span> <span class="element-name">end</span>()</div> |
| <div class="block">Finish the transaction - if a write transaction and commit() has not been called, then abort</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transactionMode()"> |
| <h3>transactionMode</h3> |
| <div class="member-signature"><span class="return-type"><a href="../../query/ReadWrite.html" title="enum class in org.apache.jena.query">ReadWrite</a></span> <span class="element-name">transactionMode</span>()</div> |
| <div class="block">Return the current mode of the transaction - "read" or "write". |
| If the caller is not in a transaction, this method returns null.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="transactionType()"> |
| <h3>transactionType</h3> |
| <div class="member-signature"><span class="return-type"><a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a></span> <span class="element-name">transactionType</span>()</div> |
| <div class="block">Return the transaction type used in <code>begin(TxnType)</code>. |
| If the caller is not in a transaction, this method returns null.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isInTransaction()"> |
| <h3>isInTransaction</h3> |
| <div class="member-signature"><span class="return-type">boolean</span> <span class="element-name">isInTransaction</span>()</div> |
| <div class="block">Say whether inside a transaction.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="exec(org.apache.jena.query.TxnType,java.lang.Runnable)"> |
| <h3>exec</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">void</span> <span class="element-name">exec</span><wbr><span class="parameters">(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> txnType, |
| <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> action)</span></div> |
| <div class="block">Execute application code in a transaction with the given <a href="../../query/TxnType.html" title="enum class in org.apache.jena.query"><code>transaction type</code></a>. See <a href="../../system/Txn.html#exec(T,org.apache.jena.query.TxnType,java.lang.Runnable)"><code>Txn.exec(T, org.apache.jena.query.TxnType, java.lang.Runnable)</code></a>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="calc(org.apache.jena.query.TxnType,java.util.function.Supplier)"> |
| <h3>calc</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="type-parameters"><T></span> <span class="return-type">T</span> <span class="element-name">calc</span><wbr><span class="parameters">(<a href="../../query/TxnType.html" title="enum class in org.apache.jena.query">TxnType</a> txnType, |
| <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><T> action)</span></div> |
| <div class="block">Execute and return a value in a transaction with the given <a href="../../query/TxnType.html" title="enum class in org.apache.jena.query"><code>transaction type</code></a>. See <a href="../../system/Txn.html#calc(T,org.apache.jena.query.TxnType,java.util.function.Supplier)"><code>Txn.calc(T, org.apache.jena.query.TxnType, java.util.function.Supplier<X>)</code></a>.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="execute(java.lang.Runnable)"> |
| <h3>execute</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">void</span> <span class="element-name">execute</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</span></div> |
| <div class="block">Execute in a "read" transaction that can promote to "write". |
| <p> |
| Such a transaction may abort if an update is executed |
| by another thread before this one is promoted to "write" mode. |
| If so, the data protected by <code>txn</code> is unchanged. |
| <p> |
| If the application knows updates will be needed, consider using <a href="#executeWrite(java.lang.Runnable)"><code>executeWrite(java.lang.Runnable)</code></a> |
| which starts in "write" mode. |
| <p> |
| The application code can call <a href="#promote()"><code>promote()</code></a> to attempt to |
| change from "read" to "write"; the <a href="#promote()"><code>promote</code></a> method |
| returns a boolean indicating whether the promotion was possible or not.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="calculate(java.util.function.Supplier)"> |
| <h3>calculate</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="type-parameters"><X></span> <span class="return-type">X</span> <span class="element-name">calculate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</span></div> |
| <div class="block">Execute in a "read" transaction that can promote to "write" and return some calculated value. |
| <p> |
| Such a transaction may abort if an update is executed |
| by another thread before this one is promoted to "write" mode. |
| If so, the data protected by <code>txn</code> is unchanged. |
| <p> |
| If the application knows updates will be needed, consider using <a href="#executeWrite(java.lang.Runnable)"><code>executeWrite(java.lang.Runnable)</code></a> |
| which starts in "write" mode. |
| <p> |
| The application code can call <a href="#promote()"><code>promote()</code></a> to attempt to |
| change from "read" to "write"; the <a href="#promote()"><code>promote</code></a> method |
| returns a boolean indicating whether the promotion was possible or not.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="executeRead(java.lang.Runnable)"> |
| <h3>executeRead</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="type-parameters"><T extends <a href="Transactional.html" title="interface in org.apache.jena.sparql.core">Transactional</a>></span> <span class="return-type">void</span> <span class="element-name">executeRead</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</span></div> |
| <div class="block">Execute in a read transaction</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="calculateRead(java.util.function.Supplier)"> |
| <h3>calculateRead</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="type-parameters"><X></span> <span class="return-type">X</span> <span class="element-name">calculateRead</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</span></div> |
| <div class="block">Execute and return a value in a read transaction</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="executeWrite(java.lang.Runnable)"> |
| <h3>executeWrite</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="return-type">void</span> <span class="element-name">executeWrite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link">Runnable</a> r)</span></div> |
| <div class="block">Execute the Runnable in a write transaction</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="calculateWrite(java.util.function.Supplier)"> |
| <h3>calculateWrite</h3> |
| <div class="member-signature"><span class="modifiers">default</span> <span class="type-parameters"><X></span> <span class="return-type">X</span> <span class="element-name">calculateWrite</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Supplier.html" title="class or interface in java.util.function" class="external-link">Supplier</a><X> r)</span></div> |
| <div class="block">Execute and return a value in a write transaction.</div> |
| </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> |