|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--il.co.iter.dbdom.DBDOMImplementation
The DOMImplementation
interface provides a number of methods
for performing operations that are independent of any particular instance
of the document object model.
See also the Document Object Model (DOM) Level 2 Core Specification.
Constructor Summary | |
DBDOMImplementation(java.sql.Connection con)
Constructs a client connection to a DOM stored in a DBDOM database. |
Method Summary | |
void |
commit()
Non-DOM Encapsulates Connection.commit() |
Document |
createDocument(java.lang.String namespaceURI,
java.lang.String qualifiedName,
DocumentType doctype)
Not Implemented Creates an XML Document object of the specified type with
its document element. |
DocumentType |
createDocumentType(java.lang.String qualifiedName,
java.lang.String publicId,
java.lang.String systemId)
Not Implemented Creates an empty DocumentType node. |
DBDocument |
createNamedDocument(java.lang.String name)
Non-DOM Cretes a new document in the database. |
boolean |
getAutoCommit()
Non-DOM Encapsulates Connection.getAutoCommit() |
protected java.sql.Connection |
getConnection()
Non-DOM Returns a reference to the database connection. |
NamedNodeMap |
getDocuments()
|
protected java.lang.RuntimeException |
getSqlOrDomException(java.sql.SQLException sqle)
Non-DOM Decides if an SQLException was
caused by DOMExeption in the database. |
protected java.util.Map |
getStatements()
Non-DOM Returns a map of all known statements. |
boolean |
hasFeature(java.lang.String feature,
java.lang.String version)
Test if the DOM implementation implements a specific feature. |
protected boolean |
nodeExists(long id)
Non-DOM Tests whether or not a node with the specified id is found in the database |
protected Node |
retrieveNode(long id)
Non-DOM Attmpts to read a node from the database. |
void |
rollback()
Non-DOM Encapsulates Connection.rollback() |
void |
setAutoCommit(boolean autoCommit)
Non-DOM Encapsulates Connection.setAutoCommit(boolean) |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DBDOMImplementation(java.sql.Connection con) throws DBDOMException
The connection is expected to be live, and to a database that has a schema compliant with DBDOM. The constructor tests this.
Method Detail |
public boolean hasFeature(java.lang.String feature, java.lang.String version)
hasFeature
in interface DOMImplementation
featureThe
- name of the feature to test (case-insensitive). The
values used by DOM features are defined throughout the DOM Level 2
specifications and listed in the section. The name must be an XML
name. To avoid possible conflicts, as a convention, names referring
to features defined outside the DOM specification should be made
unique by reversing the name of the Internet domain name of the
person (or the organization that the person belongs to) who defines
the feature, component by component, and using this as a prefix.
For instance, the W3C SVG Working Group defines the feature
"org.w3c.dom.svg".versionThis
- is the version number of the feature to test. In
Level 2, the string can be either "2.0" or "1.0". If the version is
not specified, supporting any version of the feature causes the
method to return true
.true
if the feature is implemented in the
specified version, false
otherwise.public DocumentType createDocumentType(java.lang.String qualifiedName, java.lang.String publicId, java.lang.String systemId) throws DOMException
DocumentType
node. Entity declarations
and notations are not made available. Entity reference expansions and
default attribute additions do not occur. It is expected that a
future version of the DOM will provide a way for populating a
DocumentType
.
createDocumentType
in interface DOMImplementation
qualifiedNameThe
- qualified name of the document type to be
created.publicIdThe
- external subset public identifier.systemIdThe
- external subset system identifier.DocumentType
node with
Node.ownerDocument
set to null
.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified qualified name
contains an illegal character.
qualifiedName
is
malformed.public Document createDocument(java.lang.String namespaceURI, java.lang.String qualifiedName, DocumentType doctype) throws DOMException
Document
object of the specified type with
its document element. HTML-only DOM implementations do not need to
implement this method.createDocument
in interface DOMImplementation
namespaceURIThe
- namespace URI of the document element to create.qualifiedNameThe
- qualified name of the document element to be
created.doctypeThe
- type of document to be created or null
.
When doctype
is not null
, its
Node.ownerDocument
attribute is set to the document
being created.Document
object.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified qualified name
contains an illegal character.
qualifiedName
is
malformed, if the qualifiedName
has a prefix and the
namespaceURI
is null
, or if the
qualifiedName
has a prefix that is "xml" and the
namespaceURI
is different from "
http://www.w3.org/XML/1998/namespace" .
doctype
has already
been used with a different document or was created from a different
implementation.protected java.lang.RuntimeException getSqlOrDomException(java.sql.SQLException sqle)
SQLException
was
caused by DOMExeption in the database.
This method looks at an SQLException
and decides if it was
thrown by the database because a DOMException occured, or because a
genuine SQLException was thrown.
Because DOMException
s are implemented in the database as
usual exceptions, the only way to let the client know that a
DOMException occured is to include a flag in the message of the
exception.
DBDOMExceptions include a delimiter in their message the format of the message is <domExceptionPrefix> <code> <message>
The value of domExceptionPrefix
is read from the
database when this object is constructed
Note: although it would make sense for this method to be in DBDOMException
, it is inadvisable, because
domExceptionPrefix
needs to be read from the database.
DBDOMException
does not hold a refernce to the database (let
alone a static one), nor to DBDOMImplementation
.
sqle
- SQLException
to be examined.DOMException
or an SQLException.protected java.sql.Connection getConnection()
protected java.util.Map getStatements()
protected Node retrieveNode(long id)
References to retrieved DBNode
s are kept in a private
WeakHashMap
. First, this method tries to get the DBNode
from the WeakHashMap
; if that fails, a JDBC read is performed.
This method's retrun type may need to be modified to DBNode
.
id
- id of the Node in the databaseDBNode
protected boolean nodeExists(long id)
public DBDocument createNamedDocument(java.lang.String name)
DBDOMParser
to be populated.public NamedNodeMap getDocuments()
public void setAutoCommit(boolean autoCommit)
Connection.setAutoCommit(boolean)
public boolean getAutoCommit()
Connection.getAutoCommit()
public void commit()
Connection.commit()
public void rollback()
Connection.rollback()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |