src/java.sql.rowset/share/classes/javax/sql/rowset/spi/package-info.java
author lancea
Wed, 13 Mar 2019 14:10:18 -0400
changeset 54106 9a90236ab64c
parent 54057 687e10fefa11
permissions -rw-r--r--
8220253: Fix Headings in java.sql.rowset Reviewed-by: darcy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50444
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     1
/*
54057
687e10fefa11 8220331: Remove extra spaces in copyright header
lancea
parents: 50444
diff changeset
     2
 * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
50444
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     4
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    10
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    15
 * accompanied this code).
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    16
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    20
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    23
 * questions.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    24
 */
24197
a5c2cff81e25 8039488: Tidy warnings cleanup for javax.sql
yan
parents: 6671
diff changeset
    25
50444
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    26
/**
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    27
 * The standard classes and interfaces that a third party vendor has to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    28
 * use in its implementation of a synchronization provider. These classes and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    29
 * interfaces are referred to as the Service Provider Interface (SPI).  To make it possible
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    30
 * for a <code>RowSet</code> object to use an implementation, the vendor must register
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    31
 * it with the <code>SyncFactory</code> singleton. (See the class comment for
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    32
 * <code>SyncProvider</code> for a full explanation of the registration process and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    33
 * the naming convention to be used.)
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    34
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    35
 * <h2>Table of Contents</h2>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    36
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    37
 * <li><a href="#pkgspec">1.0 Package Specification</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    38
 * <li><a href="#arch">2.0 Service Provider Architecture</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    39
 * <li><a href="#impl">3.0 Implementer's Guide</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    40
 * <li><a href="#resolving">4.0 Resolving Synchronization Conflicts</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    41
 * <li><a href="#relspec">5.0 Related Specifications</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    42
 * <li><a href="#reldocs">6.0 Related Documentation</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    43
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    44
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    45
 * <h3><a id="pkgspec">1.0 Package Specification</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    46
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    47
 * The following classes and interfaces make up the <code>javax.sql.rowset.spi</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    48
 * package:
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    49
 * <UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    50
 *  <LI><code>SyncFactory</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    51
 *  <LI><code>SyncProvider</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    52
 *  <LI><code>SyncFactoryException</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    53
 *  <LI><code>SyncProviderException</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    54
 *  <LI><code>SyncResolver</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    55
 *  <LI><code>XmlReader</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    56
 *  <LI><code>XmlWriter</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    57
 *  <LI><code>TransactionalWriter</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    58
 * </UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    59
 * The following interfaces, in the <code>javax.sql</code> package, are also part of the SPI:
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    60
 * <UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    61
 *  <LI><code>RowSetReader</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    62
 *  <LI><code>RowSetWriter</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    63
 * </UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    64
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    65
 * A <code>SyncProvider</code> implementation provides a disconnected <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    66
 * object with the mechanisms for reading data into it and for writing data that has been
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    67
 * modified in it
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    68
 * back to the underlying data source.  A <i>reader</i>, a <code>RowSetReader</code> or
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    69
 * <code>XMLReader</code> object, reads data into a <code>RowSet</code> object when the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    70
 * <code>CachedRowSet</code> methods <code>execute</code> or <code>populate</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    71
 * are called.  A <i>writer</i>, a <code>RowSetWriter</code> or <code>XMLWriter</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    72
 * object, writes changes back to the underlying data source when the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    73
 * <code>CachedRowSet</code> method <code>acceptChanges</code> is called.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    74
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    75
 * The process of writing changes in a <code>RowSet</code> object to its data source
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    76
 * is known as <i>synchronization</i>.  The <code>SyncProvider</code> implementation that a
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    77
 * <code>RowSet</code> object is using determines the level of synchronization that the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    78
 * <code>RowSet</code> object's writer uses. The various levels of synchronization are
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    79
 * referred to as <i>grades</i>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    80
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    81
 * The lower grades of synchronization are
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    82
 * known as <i>optimistic</i> concurrency levels because they optimistically
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    83
 * assume that there will be no conflicts or very few conflicts.  A conflict exists when
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    84
 * the same data modified in the <code>RowSet</code> object has also been modified
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    85
 * in the data source. Using the optimistic concurrency model means that if there
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    86
 * is a conflict, modifications to either the data source or the <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    87
 * object will be lost.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    88
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    89
 * Higher grades of synchronization are called <i>pessimistic</i> because they assume
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    90
 * that others will be accessing the data source and making modifications.  These
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    91
 * grades set varying levels of locks to increase the chances that no conflicts
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    92
 * occur.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    93
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    94
 * The lowest level of synchronization is simply writing any changes made to the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    95
 * <code>RowSet</code> object to its underlying data source.  The writer does
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    96
 * nothing to check for conflicts.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    97
 * If there is a conflict and the data
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    98
 * source values are overwritten, the changes other parties have made by to the data
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
    99
 * source are lost.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   100
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   101
 * The <code>RIXMLProvider</code> implementation uses the lowest level
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   102
 * of synchronization and just writes <code>RowSet</code> changes to the data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   103
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   104
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   105
 * For the next level up, the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   106
 * writer checks to see if there are any conflicts, and if there are,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   107
 * it does not write anything to the data source.  The problem with this concurrency
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   108
 * level is that if another party has modified the corresponding data in the data source
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   109
 * since the <code>RowSet</code> object got its data,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   110
 * the changes made to the <code>RowSet</code> object are lost. The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   111
 * <code>RIOptimisticProvider</code> implementation uses this level of synchronization.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   112
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   113
 * At higher levels of synchronization, referred to as pessimistic concurrency,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   114
 * the writer take steps to avoid conflicts by setting locks. Setting locks
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   115
 * can vary from setting a lock on a single row to setting a lock on a table
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   116
 * or the entire data source. The level of synchronization is therefore a tradeoff
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   117
 * between the ability of users to access the data source concurrently and the  ability
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   118
 * of the writer to keep the data in the <code>RowSet</code> object and its data source
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   119
 * synchronized.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   120
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   121
 * It is a requirement that all disconnected <code>RowSet</code> objects
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   122
 * (<code>CachedRowSet</code>, <code>FilteredRowSet</code>, <code>JoinRowSet</code>,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   123
 * and <code>WebRowSet</code> objects) obtain their <code>SyncProvider</code> objects
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   124
 * from the <code>SyncFactory</code> mechanism.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   125
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   126
 * The reference implementation (RI) provides two synchronization providers.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   127
 *    <UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   128
 *       <LI><b><code>RIOptimisticProvider</code></b> <br>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   129
 *            The default provider that the <code>SyncFactory</code> instance will
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   130
 *            supply to a disconnected <code>RowSet</code> object when no provider
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   131
 *            implementation is specified.<BR>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   132
 *            This synchronization provider uses an optimistic concurrency model,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   133
 *            assuming that there will be few conflicts among users
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   134
 *            who are accessing the same data in a database.  It avoids
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   135
 *            using locks; rather, it checks to see if there is a conflict
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   136
 *            before trying to synchronize the <code>RowSet</code> object and the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   137
 *            data source. If there is a conflict, it does nothing, meaning that
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   138
 *            changes to the <code>RowSet</code> object are not persisted to the data
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   139
 *            source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   140
 *        <LI><B><code>RIXMLProvider</code></B> <BR>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   141
 *             A synchronization provider that can be used with a
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   142
 *             <code>WebRowSet</code> object, which is a rowset that can be written
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   143
 *             in XML format or read from XML format. The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   144
 *             <code>RIXMLProvider</code> implementation does no checking at all for
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   145
 *             conflicts and simply writes any updated data in the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   146
 *             <code>WebRowSet</code> object to the underlying data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   147
 *             <code>WebRowSet</code> objects use this provider when they are
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   148
 *             dealing with XML data.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   149
 *     </UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   150
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   151
 *  These <code>SyncProvider</code> implementations
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   152
 *  are bundled with the reference implementation, which makes them always available to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   153
 *  <code>RowSet</code> implementations.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   154
 *  <code>SyncProvider</code> implementations make themselves available by being
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   155
 *  registered with the <code>SyncFactory</code> singleton.  When a <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   156
 *  object requests a provider, by specifying it in the constructor or as an argument to the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   157
 *  <code>CachedRowSet</code> method <code>setSyncProvider</code>,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   158
 *  the <code>SyncFactory</code> singleton
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   159
 *  checks to see if the requested provider has been registered with it.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   160
 *  If it has, the <code>SyncFactory</code> creates an instance of it and passes it to the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   161
 *  requesting <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   162
 *  If the <code>SyncProvider</code> implementation that is specified has not been registered,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   163
 *  the <code>SyncFactory</code> singleton causes a <code>SyncFactoryException</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   164
 *  to be thrown.  If no provider is specified,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   165
 *  the <code>SyncFactory</code> singleton will create an instance of the default
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   166
 *  provider implementation, <code>RIOptimisticProvider</code>,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   167
 *  and pass it to the requesting <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   168
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   169
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   170
 * If a <code>WebRowSet</code> object does not specify a provider in its constructor, the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   171
 * <code>SyncFactory</code> will give it an instance of <code>RIOptimisticProvider</code>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   172
 * However, the constructor for <code>WebRowSet</code> is implemented to set the provider
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   173
 * to the <code>RIXMLProvider</code>, which reads and writes a <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   174
 *  in XML format.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   175
 *  <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   176
 * See the <a href="SyncProvider.html">SyncProvider</a> class
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   177
 *  specification for further details.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   178
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   179
 * Vendors may develop a <code>SyncProvider</code> implementation with any one of the possible
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   180
 * levels of synchronization, thus giving <code>RowSet</code> objects a choice of
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   181
 * synchronization mechanisms.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   182
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   183
 * <h3><a id="arch">2.0 Service Provider Interface Architecture</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   184
 * <b>2.1 Overview</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   185
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   186
 * The Service Provider Interface provides a pluggable mechanism by which
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   187
 * <code>SyncProvider</code> implementations can be registered and then generated when
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   188
 * required. The lazy reference mechanism employed by the <code>SyncFactory</code> limits
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   189
 * unnecessary resource consumption by not creating an instance until it is
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   190
 * required by a disconnected
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   191
 * <code>RowSet</code> object. The <code>SyncFactory</code> class also provides
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   192
 * a standard API to configure logging options and streams that <b>may</b> be provided
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   193
 * by a particular <code>SyncProvider</code> implementation.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   194
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   195
 * <b>2.2 Registering with the <code>SyncFactory</code></b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   196
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   197
 * A third party <code>SyncProvider</code> implementation must be registered with the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   198
 * <code>SyncFactory</code> in order for a disconnected <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   199
 * to obtain it and thereby use its <code>javax.sql.RowSetReader</code> and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   200
 * <code>javax.sql.RowSetWriter</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   201
 * implementations. The following registration mechanisms are available to all
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   202
 * <code>SyncProvider</code> implementations:
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   203
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   204
 * <li><b>System properties</b> - Properties set at the command line. These
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   205
 * properties are set at run time and apply system-wide per invocation of the Java
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   206
 * application. See the section <a href="#reldocs">"Related Documentation"</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   207
 * further related information.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   208
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   209
 * <li><b>Property Files</b> - Properties specified in a standard property file.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   210
 * This can be specified using a System Property or by modifying a standard
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   211
 * property file located in the platform run-time. The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   212
 * reference implementation of this technology includes a standard property
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   213
 * file than can be edited to add additional <code>SyncProvider</code> objects.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   214
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   215
 * <li><b>JNDI Context</b> - Available providers can be registered on a JNDI
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   216
 * context. The <code>SyncFactory</code> will attempt to load <code>SyncProvider</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   217
 * objects bound to the context and register them with the factory. This
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   218
 * context must be supplied to the <code>SyncFactory</code> for the mechanism to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   219
 * function correctly.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   220
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   221
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   222
 * Details on how to specify the system properties or properties in a property file
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   223
 * and how to configure the JNDI Context are explained in detail in the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   224
 * <a href="SyncFactory.html"><code>SyncFactory</code></a> class description.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   225
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   226
 * <b>2.3 SyncFactory Provider Instance Generation Policies</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   227
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   228
 * The <code>SyncFactory</code> generates a requested <code>SyncProvider</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   229
 * object if the provider has been correctly registered.  The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   230
 * following policies are adhered to when either a disconnected <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   231
 * is instantiated with a specified <code>SyncProvider</code> implementation or is
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   232
 * reconfigured at runtime with an alternative <code>SyncProvider</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   233
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   234
 * <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   235
 * contains <i>no</i> reference to the provider, a <code>SyncFactoryException</code> is
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   236
 * thrown.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   237
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   238
 * <li> If a <code>SyncProvider</code> object is specified and the <code>SyncFactory</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   239
 * contains a reference to the provider, the requested provider is supplied.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   240
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   241
 * <li> If no <code>SyncProvider</code> object is specified, the reference
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   242
 * implementation provider <code>RIOptimisticProvider</code> is supplied.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   243
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   244
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   245
 * These policies are explored in more detail in the <a href="SyncFactory.html">
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   246
 * <code>SyncFactory</code></a> class.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   247
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   248
 * <h3><a id="impl">3.0 SyncProvider Implementer's Guide</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   249
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   250
 * <b>3.1 Requirements</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   251
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   252
 * A compliant <code>SyncProvider</code> implementation that is fully pluggable
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   253
 * into the <code>SyncFactory</code> <b>must</b> extend and implement all
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   254
 * abstract methods in the <a href="SyncProvider.html"><code>SyncProvider</code></a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   255
 * class. In addition, an implementation <b>must</b> determine the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   256
 * grade, locking and updatable view capabilities defined in the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   257
 * <code>SyncProvider</code> class definition. One or more of the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   258
 * <code>SyncProvider</code> description criteria <b>must</b> be supported. It
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   259
 * is expected that vendor implementations will offer a range of grade, locking, and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   260
 * updatable view capabilities.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   261
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   262
 * Furthermore, the <code>SyncProvider</code> naming convention <b>must</b> be followed as
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   263
 * detailed in the <a href="SyncProvider.html"><code>SyncProvider</code></a> class
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   264
 * description.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   265
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   266
 * <b>3.2 Grades</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   267
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   268
 * JSR 114 defines a set of grades to describe the quality of synchronization
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   269
 * a <code>SyncProvider</code> object can offer a disconnected <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   270
 * object. These grades are listed from the lowest quality of service to the highest.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   271
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   272
 * <li><b>GRADE_NONE</b> - No synchronization with the originating data source is
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   273
 * provided. A <code>SyncProvider</code> implementation returning this grade will simply
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   274
 * attempt to write any data that has changed in the <code>RowSet</code> object to the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   275
 *underlying data source, overwriting whatever is there. No attempt is made to compare
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   276
 * original values with current values to see if there is a conflict. The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   277
 * <code>RIXMLProvider</code> is implemented with this grade.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   278
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   279
 * <li><b>GRADE_CHECK_MODIFIED_AT_COMMIT</b> - A low grade of optimistic synchronization.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   280
 * A <code>SyncProvider</code> implementation returning this grade
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   281
 * will check for conflicts in rows that have changed between the last synchronization
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   282
 * and the current synchronization under way. Any changes in the originating data source
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   283
 * that have been modified will not be reflected in the disconnected <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   284
 * object. If there are no conflicts, changes in the <code>RowSet</code> object will be
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   285
 * written to the data source. If there are conflicts, no changes are written.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   286
 * The <code>RIOptimisticProvider</code> implementation uses this grade.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   287
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   288
 * <li><b>GRADE_CHECK_ALL_AT_COMMIT</b> - A high grade of optimistic synchronization.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   289
 * A <code>SyncProvider</code> implementation   returning this grade
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   290
 * will check all rows, including rows that have not changed in the disconnected
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   291
 * <code>RowSet</code> object. In this way, any changes to rows in the underlying
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   292
 * data source will be reflected in the disconnected <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   293
 * when the synchronization finishes successfully.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   294
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   295
 * <li><b>GRADE_LOCK_WHEN_MODIFIED</b> - A pessimistic grade of synchronization.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   296
 * <code>SyncProvider</code> implementations returning this grade will lock
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   297
 * the row in the originating  data source that corresponds to the row being changed
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   298
 * in the <code>RowSet</code> object to reduce the possibility of other
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   299
 * processes modifying the same data in the data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   300
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   301
 * <li><b>GRADE_LOCK_WHEN_LOADED</b> - A higher pessimistic synchronization grade.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   302
 * A <code>SyncProvider</code> implementation returning this grade will lock
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   303
 * the entire view and/or  table affected by the original query used to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   304
 * populate a <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   305
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   306
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   307
 * <b>3.3 Locks</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   308
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   309
 * JSR 114 defines a set of constants that specify whether any locks have been
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   310
 * placed on a <code>RowSet</code> object's underlying data source and, if so,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   311
 * on which constructs the locks are placed.  These locks will remain on the data
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   312
 * source while the <code>RowSet</code> object is disconnected from the data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   313
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   314
 * These constants <b>should</b> be considered complementary to the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   315
 * grade constants. The default setting for the majority of grade settings requires
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   316
 * that no data source locks remain when a <code>RowSet</code> object is disconnected
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   317
 * from its data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   318
 * The grades <code>GRADE_LOCK_WHEN_MODIFIED</code> and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   319
 * <code>GRADE_LOCK_WHEN_LOADED</code> allow a disconnected <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   320
 * to have a fine-grained control over the degree of locking.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   321
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   322
 * <li><b>DATASOURCE_NO_LOCK</b> - No locks remain on the originating data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   323
 * This is the default lock setting for all <code>SyncProvider</code> implementations
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   324
 * unless otherwise directed by a <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   325
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   326
 * <li><b>DATASOURCE_ROW_LOCK</b> - A lock is placed on the rows that are touched by
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   327
 * the original SQL query used to populate the <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   328
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   329
 * <li><b>DATASOURCE_TABLE_LOCK</b> - A lock is placed on all tables that are touched
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   330
 * by the query that was used to populate the <code>RowSet</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   331
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   332
 * <li><b>DATASOURCE_DB_LOCK</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   333
 * A lock is placed on the entire data source that is used by the <code>RowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   334
 * object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   335
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   336
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   337
 * <b>3.4 Updatable Views</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   338
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   339
 * A <code>RowSet</code> object may be populated with data from an SQL <code>VIEW</code>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   340
 * The following constants indicate whether a <code>SyncProvider</code> object can
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   341
 * update data in the table or tables from which the <code>VIEW</code> was derived.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   342
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   343
 * <li><b>UPDATABLE_VIEW_SYNC</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   344
 * Indicates that a <code>SyncProvider</code> implementation  supports synchronization
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   345
 * to the table or tables from which the SQL <code>VIEW</code> used to populate
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   346
 * a <code>RowSet</code> object is derived.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   347
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   348
 * <li><b>NONUPDATABLE_VIEW_SYNC</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   349
 * Indicates that a <code>SyncProvider</code> implementation  does <b>not</b> support
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   350
 * synchronization to the table or tables from which the SQL <code>VIEW</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   351
 * used to populate  a <code>RowSet</code> object is derived.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   352
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   353
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   354
 * <b>3.5 Usage of <code>SyncProvider</code> Grading and Locking</b>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   355
 * <p>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   356
 * In the example below, the reference <code>CachedRowSetImpl</code> implementation
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   357
 * reconfigures its current <code>SyncProvider</code> object by calling the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   358
 * <code>setSyncProvider</code> method.<br>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   359
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   360
 * <PRE>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   361
 *   CachedRowSetImpl crs = new CachedRowSetImpl();
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   362
 *   crs.setSyncProvider("com.foo.bar.HASyncProvider");
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   363
 * </PRE>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   364
 *   An application can retrieve the <code>SyncProvider</code> object currently in use
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   365
 * by a disconnected <code>RowSet</code> object. It can also retrieve the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   366
 * grade of synchronization with which the provider was implemented and the degree of
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   367
 * locking currently in use.  In addition, an application has the flexibility to set
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   368
 * the degree of locking to be used, which can increase the possibilities for successful
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   369
 * synchronization.  These operation are shown in the following code fragment.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   370
 * <PRE>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   371
 *   SyncProvider sync = crs.getSyncProvider();
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   372
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   373
 *   switch (sync.getProviderGrade()) {
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   374
 *   case: SyncProvider.GRADE_CHECK_ALL_AT_COMMIT
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   375
 *         //A high grade of optimistic synchronization
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   376
 *    break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   377
 *    case: SyncProvider.GRADE_CHECK_MODIFIED_AT_COMMIT
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   378
 *         //A low grade of optimistic synchronization
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   379
 *    break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   380
 *    case: SyncProvider.GRADE_LOCK_WHEN_LOADED
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   381
 *         // A pessimistic synchronization grade
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   382
 *    break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   383
 *    case: SyncProvider.GRADE_LOCK_WHEN_MODIFIED
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   384
 *         // A pessimistic synchronization grade
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   385
 *    break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   386
 *    case: SyncProvider.GRADE_NONE
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   387
 *      // No synchronization with the originating data source provided
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   388
 *    break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   389
 *    }
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   390
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   391
 *    switch (sync.getDataSourcLock() {
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   392
 *      case: SyncProvider.DATASOURCE_DB_LOCK
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   393
 *       // A lock is placed on the entire datasource that is used by the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   394
 *       // <code>RowSet</code> object
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   395
 *       break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   396
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   397
 *      case: SyncProvider.DATASOURCE_NO_LOCK
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   398
 *       // No locks remain on the  originating data source.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   399
 *      break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   400
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   401
 *      case: SyncProvider.DATASOURCE_ROW_LOCK
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   402
 *       // A lock is placed on the rows that are  touched by the original
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   403
 *       // SQL statement used to populate
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   404
 *       // the RowSet object that is using the SyncProvider
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   405
 *       break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   406
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   407
 *      case: DATASOURCE_TABLE_LOCK
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   408
 *       // A lock is placed on  all tables that are touched by the original
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   409
 *       // SQL statement used to populated
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   410
 *       // the RowSet object that is using the SyncProvider
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   411
 *      break;
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   412
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   413
 * </PRE>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   414
 *    It is also possible using the static utility method in the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   415
 * <code>SyncFactory</code> class to determine the list of <code>SyncProvider</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   416
 * implementations currently registered with the <code>SyncFactory</code>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   417
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   418
 * <pre>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   419
 *       Enumeration e = SyncFactory.getRegisteredProviders();
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   420
 * </pre>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   421
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   422
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   423
 * <h3><a id="resolving">4.0 Resolving Synchronization Conflicts</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   424
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   425
 * The interface <code>SyncResolver</code> provides a way for an application to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   426
 * decide manually what to do when a conflict occurs. When the <code>CachedRowSet</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   427
 * method <code>acceptChanges</code> finishes and has detected one or more conflicts,
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   428
 * it throws a <code>SyncProviderException</code> object.  An application can
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   429
 * catch the exception and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   430
 * have it retrieve a <code>SyncResolver</code> object by calling the method
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   431
 * <code>SyncProviderException.getSyncResolver()</code>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   432
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   433
 * A <code>SyncResolver</code> object, which is a special kind of
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   434
 * <code>CachedRowSet</code> object or
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   435
 * a <code>JdbcRowSet</code> object that has implemented the <code>SyncResolver</code>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   436
 * interface,  examines the conflicts row by row. It is a duplicate of the
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   437
 * <code>RowSet</code> object being synchronized except that it contains only the data
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   438
 * from the data source this is causing a conflict. All of the other column values are
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   439
 * set to <code>null</code>. To navigate from one conflict value to another, a
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   440
 * <code>SyncResolver</code> object provides the methods <code>nextConflict</code> and
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   441
 * <code>previousConflict</code>.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   442
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   443
 * The <code>SyncResolver</code> interface also
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   444
 * provides methods for doing the following:
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   445
 * <UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   446
 *  <LI>finding out whether the conflict involved an update, a delete, or an insert
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   447
 *  <LI>getting the value in the data source that caused the conflict
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   448
 *  <LI>setting the value that should be in the data source if it needs to be changed
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   449
 *      or setting the value that should be in the <code>RowSet</code> object if it needs
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   450
 *      to be changed
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   451
 * </UL>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   452
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   453
 * When the <code>CachedRowSet</code> method <code>acceptChanges</code> is called, it
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   454
 * delegates to the <code>RowSet</code> object's  <code>SyncProvider</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   455
 * How the writer provided by that <code>SyncProvider</code> object is implemented
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   456
 * determines what level (grade) of checking for conflicts will be done.  After all
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   457
 * checking for conflicts is completed and one or more conflicts has been found, the method
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   458
 * <code>acceptChanges</code> throws a <code>SyncProviderException</code> object. The
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   459
 * application can catch the exception and use it to obtain a <code>SyncResolver</code> object.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   460
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   461
 * The application can then use <code>SyncResolver</code> methods to get information
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   462
 * about each conflict and decide what to do.  If the application logic or the user
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   463
 * decides that a value in the <code>RowSet</code> object should be the one to
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   464
 * persist, the application or user can overwrite the data source value with it.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   465
 * <P>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   466
 * The comment for the <code>SyncResolver</code> interface has more detail.
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   467
 *
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   468
 * <h3><a id="relspec">5.0 Related Specifications</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   469
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   470
 * <li><a href="http://docs.oracle.com/javase/jndi/tutorial/index.html">JNDI</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   471
 * <li><a href="{@docRoot}/java.logging/java/util/logging/package-summary.html">Java Logging
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   472
 * APIs</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   473
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   474
 * <h3><a id="reldocs">6.0 Related Documentation</a></h3>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   475
 * <ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   476
 * <li><a href="http://docs.oracle.com/javase/tutorial/jdbc/">DataSource for JDBC
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   477
 * Connections</a>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   478
 * </ul>
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   479
 */
db65921e9a9b 8201608: fix broken links in javax/sql/rowset/package.html and javax/sql/rowset/spi/package.html
lancea
parents: 47216
diff changeset
   480
package javax.sql.rowset.spi;