alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (RIXMLProvider.java)

This example Java source code file (RIXMLProvider.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

corporation, jdbc, jdbcrowsetresourcebundle, oracle, rixmlprovider, rowsetreader, rowsetwriter, runtimeexception, sql, sqlexception, string, syncproviderexception, xmlreader, xmlwriter

The RIXMLProvider.java Java example source code

/*
 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package com.sun.rowset.providers;

import com.sun.rowset.JdbcRowSetResourceBundle;
import java.io.IOException;
import java.sql.*;
import javax.sql.*;

import javax.sql.rowset.spi.*;

/**
 * A reference implementation of a JDBC RowSet synchronization provider
 * with the ability to read and write rowsets in well formed XML using the
 * standard WebRowSet schema.
 *
 * <h3>1.0 Background
 * This synchronization provider is registered with the
 * <code>SyncFactory by default as the
 * <code>com.sun.rowset.providers.RIXMLProvider.
 * <P>
 * A <code>WebRowSet object uses an RIXMLProvider implementation
 * to read an XML data source or to write itself in XML format using the
 * <code>WebRowSet XML schema definition available at
 * <pre>
 *     <a href="http://java.sun.com/xml/ns/jdbc/webrowset.xsd">http://java.sun.com/xml/ns/jdbc/webrowset.xsd
 * </pre>
 * The <code>RIXMLProvider implementation has a synchronization level of
 * GRADE_NONE, which means that it does no checking at all for conflicts.  It
 * simply writes a <code>WebRowSet object to a file.
 * <h3>2.0 Usage
 * A <code>WebRowSet implementation is created with an RIXMLProvider
 * by default.
 * <pre>
 *     WebRowSet wrs = new FooWebRowSetImpl();
 * </pre>
 * The <code>SyncFactory always provides an instance of
 * <code>RIOptimisticProvider when no provider is specified,
 * but the implementation of the default constructor for <code>WebRowSet sets the
 * provider to be the <code>RIXMLProvider implementation.  Therefore,
 * the following line of code is executed behind the scenes as part of the
 * implementation of the default constructor.
 * <pre>
 *     wrs.setSyncProvider("com.sun.rowset.providers.RIXMLProvider");
 * </pre>
 * See the standard <code>RowSet reference implementations in the
 * <code>com.sun.rowset package for more details.
 *
 * @author  Jonathan Bruce
 * @see javax.sql.rowset.spi.SyncProvider
 * @see javax.sql.rowset.spi.SyncProviderException
 * @see javax.sql.rowset.spi.SyncFactory
 * @see javax.sql.rowset.spi.SyncFactoryException
 */
public final class RIXMLProvider extends SyncProvider {

    /**
     * The unique provider identifier.
     */
    private String providerID = "com.sun.rowset.providers.RIXMLProvider";

    /**
     * The vendor name of this SyncProvider implementation.
     */
    private String vendorName = "Oracle Corporation";

    /**
     * The version number of this SyncProvider implementation.
     */
    private String versionNumber = "1.0";

    private JdbcRowSetResourceBundle resBundle;

    private XmlReader xmlReader;
    private XmlWriter xmlWriter;

    /**
     * This provider is available to all JDBC <code>RowSet implementations as the
     * default persistence provider.
     */
    public RIXMLProvider() {
        providerID = this.getClass().getName();
        try {
           resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();
        } catch(IOException ioe) {
            throw new RuntimeException(ioe);
        }
    }

    /**
     * Returns <code>"javax.sql.rowset.providers.RIXMLProvider", which is
     * the fully qualified class name of this provider implementation.
     *
     * @return a <code>String object with the fully specified class name of
     *           this <code>RIOptimisticProvider implementation
     */
    public String getProviderID() {
        return providerID;
    }

    // additional methods that sit on top of reader/writer methods back to
    // original datasource. Allow XML state to be written out and in

    /**
     * Sets this <code>WebRowSet object's reader to the given
     * <code>XmlReader object.
     *
     * @throws SQLException if a database access error occurs
     */
    public void setXmlReader(XmlReader reader) throws SQLException {
        xmlReader = reader;
    }

    /**
     * Sets this <code>WebRowSet object's writer to the given
     * <code>XmlWriter object.
     *
     * @throws SQLException if a database access error occurs
     */
    public void setXmlWriter(XmlWriter writer) throws SQLException {
        xmlWriter = writer;
    }

    /**
     * Retrieves the reader that this <code>WebRowSet object
     * will call when its <code>readXml method is called.
     *
     * @return the <code>XmlReader object for this SyncProvider
     * @throws SQLException if a database access error occurs
     */
    public XmlReader getXmlReader() throws SQLException {
        return xmlReader;
    }

    /**
     * Retrieves the writer that this <code>WebRowSet object
     * will call when its <code>writeXml method is called.
     *
     * @return the <code>XmlWriter for this SyncProvider
     * @throws SQLException if a database access error occurs
     */
    public XmlWriter getXmlWriter() throws SQLException {
        return xmlWriter;
    }

    /**
     * Returns the <code>SyncProvider grade of syncrhonization that
     * <code>RowSet object instances can expect when using this
     * implementation. As this implementation provides no synchonization
     * facilities to the XML data source, the lowest grade is returned.
     *
     * @return the <code>SyncProvider syncronization grade of this
     *     provider; must be one of the following constants:
     *       <PRE>
     *          SyncProvider.GRADE_NONE,
     *          SyncProvider.GRADE_MODIFIED_AT_COMMIT,
     *          SyncProvider.GRADE_CHECK_ALL_AT_COMMIT,
     *          SyncProvider.GRADE_LOCK_WHEN_MODIFIED,
     *          SyncProvider.GRADE_LOCK_WHEN_LOADED
     *       </PRE>
     *
     */
    public int getProviderGrade() {
        return SyncProvider.GRADE_NONE;
    }

    /**
     * Returns the default UPDATABLE_VIEW behavior of this reader
     *
     */
    public int supportsUpdatableView() {
        return SyncProvider.NONUPDATABLE_VIEW_SYNC;
    }

    /**
     * Returns the default DATASOURCE_LOCK behavior of this reader
     */
    public int getDataSourceLock() throws SyncProviderException {
        return SyncProvider.DATASOURCE_NO_LOCK;
    }

    /**
     * Throws an unsupported operation exception as this method does
     * function with non-locking XML data sources.
     */
    public void setDataSourceLock(int lock) throws SyncProviderException {
        throw new UnsupportedOperationException(resBundle.handleGetObject("rixml.unsupp").toString());
    }

    /**
     * Returns a null object as RowSetWriters are not returned by this SyncProvider
     */
    public RowSetWriter getRowSetWriter() {
        return null;
    }

    /**
     * Returns a null object as RowSetWriter objects are not returned by this
     * SyncProvider
     */
    public RowSetReader getRowSetReader() {
        return null;
    }

  /**
     * Returns the release version ID of the Reference Implementation Optimistic
     * Synchronization Provider.
     *
     * @return the <code>String detailing the version number of this SyncProvider
     */
    public String getVersion() {
        return this.versionNumber;
    }

    /**
     * Returns the vendor name of the Reference Implemntation Optimistic
     * Syncchronication Provider
     *
     * @return the <code>String detailing the vendor name of this
     *      SyncProvider
     */
    public String getVendor() {
        return this.vendorName;
    }
}

Other Java examples (source code examples)

Here is a short list of links related to this Java RIXMLProvider.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.