|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
org.exist.storage.DBBroker
org.exist.storage.NativeBroker
Main class for the native XML storage backend.
By "native" it is meant file-based, embedded backend.
Provides access to all low-level operations required by
the database. Extends DBBroker
.
Observer Design Pattern: role : this class is the subject (alias observable)
for various classes that generate indices for the database content :
Nested Class Summary | |
static class |
NativeBroker.NodeRef
|
Field Summary | |
static int |
BUFFERS
default buffer size setting |
static java.lang.String |
COLLECTIONS_DBX
|
static byte |
COLLECTIONS_DBX_ID
|
static java.lang.String |
DEFAULT_DATA_DIR
|
static int |
DEFAULT_INDEX_DEPTH
|
static int |
DEFAULT_MIN_MEMORY
|
static int |
DEFAULT_NODES_BEFORE_MEMORY_CHECK
check available memory after storing DEFAULT_NODES_BEFORE_MEMORY_CHECK nodes |
static int |
DEFAULT_PAGE_SIZE
|
static double |
DEFAULT_VALUE_CACHE_GROWTH
|
static double |
DEFAULT_VALUE_KEY_THRESHOLD
|
static double |
DEFAULT_VALUE_VALUE_THRESHOLD
|
static double |
DEFAULT_WORD_CACHE_GROWTH
|
static double |
DEFAULT_WORD_KEY_THRESHOLD
|
static double |
DEFAULT_WORD_VALUE_THRESHOLD
|
static java.lang.String |
DOM_DBX
|
static byte |
DOM_DBX_ID
|
static java.lang.String |
ELEMENTS_DBX
|
static byte |
ELEMENTS_DBX_ID
|
static byte |
PREPEND_DB_ALWAYS
|
static byte |
PREPEND_DB_AS_NEEDED
|
static byte |
PREPEND_DB_NEVER
|
static java.lang.String |
PROPERTY_INDEX_DEPTH
|
static java.lang.String |
PROPERTY_MIN_FREE_MEMORY
|
static java.lang.String |
PROPERTY_PAGE_SIZE
|
static long |
TEMP_FRAGMENT_TIMEOUT
|
static java.lang.String |
VALUES_DBX
|
static byte |
VALUES_DBX_ID
|
static java.lang.String |
VALUES_QNAME_DBX
|
static byte |
VALUES_QNAME_DBX_ID
|
static java.lang.String |
WORDS_DBX
|
static byte |
WORDS_DBX_ID
|
Fields inherited from class org.exist.storage.DBBroker |
COLLECTION_CONFIG_FILENAME, CONFIG_COLLECTION, customProperties, MATCH_EXACT, MATCH_REGEXP, MATCH_WILDCARDS, NATIVE, NATIVE_CLUSTER, PROPERTY_XUPDATE_CONSISTENCY_CHECKS, PROPERTY_XUPDATE_FRAGMENTATION_FACTOR, PROPERTY_XUPDATE_GROWTH_FACTOR, ROOT_COLLECTION, ROOT_COLLECTION_NAME, SYSTEM_COLLECTION, TEMP_COLLECTION |
Constructor Summary | |
NativeBroker(BrokerPool pool,
Configuration config)
initialize database; read configuration, etc. |
Method Summary | |
void |
addContentLoadingObserver(ContentLoadingObserver observer)
Observer Design Pattern: add an observer. |
void |
addObserver(java.util.Observer o)
|
void |
checkXMLResourceConsistency(DocumentImpl doc)
consistency Check of the database; useful after XUpdates; called if xupdate.consistency-checks is true in configuration |
void |
checkXMLResourceTree(DocumentImpl doc)
consistency Check of the database; useful after XUpdates; called by checkXMLResourceConsistency(DocumentImpl) |
void |
cleanUpTempCollection()
remove temporary collection |
void |
cleanUpTempResources()
remove all documents from temporary collection |
void |
cleanUpTempResources(java.util.List docs)
remove from the temporary collection of the database a given list of Documents. |
void |
clearContentLoadingObservers()
Remove all observers |
void |
closeDocument()
|
void |
copyCollection(Txn transaction,
Collection collection,
Collection destination,
XmldbURI newName)
Copy a collection to the destination collection and rename it. |
void |
copyXMLResource(Txn transaction,
DocumentImpl doc,
Collection destination,
XmldbURI newName)
Copy a resource to the destination collection and rename it. |
void |
defragXMLResource(Txn transaction,
DocumentImpl doc)
Defragment pages of this document. |
void |
deleteObservers()
|
void |
dropCollectionIndex(Collection collection)
|
void |
endElement(StoredNode node,
NodePath currentPath,
java.lang.String content,
long oldAddress)
Update indexes for the given element node. |
void |
endRemove()
Takes care of actually remove entries from the indices; must be called after one or more call to removeNode(Txn, StoredNode, NodePath, String) . |
void |
flush()
Flush all data that has not been written before. |
DocumentSet |
getAllXMLResources(DocumentSet docs)
Adds all the documents in the database to the specified DocumentSet. |
int |
getBackendType()
|
byte[] |
getBinaryResource(BinaryDocument blob)
Retrieve the binary data stored under the resource descriptor BinaryDocument. |
Collection |
getCollection(XmldbURI name)
Returns the database collection identified by the specified path. |
Collection |
getCollection(XmldbURI name,
long addr)
Returns the database collection identified by the specified path. |
void |
getCollectionResources(Collection collection)
|
DOMFile |
getDOMFile()
|
java.util.Iterator |
getDOMIterator(StoredNode node)
Return a DOMFileIterator starting at the
specified node. |
ElementIndex |
getElementIndex()
|
short |
getFreeCollectionId(Txn transaction)
Get the next free collection id. |
int |
getFreeResourceId(Txn transaction)
Get the next unused document id. |
IndexSpec |
getIndexConfiguration()
|
short |
getNextCollectionId(Txn transaction)
Get the next available unique collection id. |
int |
getNextResourceId(Txn transaction,
Collection collection)
get next Free Doc Id |
java.util.Iterator |
getNodeIterator(StoredNode node)
Return a NodeIterator starting at the
specified node. |
NodeSet |
getNodesEqualTo(NodeSet context,
DocumentSet docs,
int relation,
int truncation,
java.lang.String expr,
java.text.Collator collator)
Find all Nodes whose string value is equal to expr in the document set. |
java.lang.String |
getNodeValue(StoredNode node,
boolean addWhitespace)
Get the string value of the specified node. |
Collection |
getOrCreateCollection(Txn transaction,
XmldbURI name)
Returns the database collection identified by the specified path. |
int |
getPageSize()
|
NativeValueIndexByQName |
getQNameValueIndex()
|
void |
getResourceMetadata(DocumentImpl doc)
|
Serializer |
getSerializer()
Get an instance of the Serializer used for converting nodes back to XML. |
BTree |
getStorage(byte id)
|
byte[] |
getStorageFileIds()
|
TextSearchEngine |
getTextEngine()
Get the TextSearchEngine associated with this broker. |
NativeValueIndex |
getValueIndex()
|
org.w3c.dom.Document |
getXMLResource(XmldbURI fileName)
get a document by its file name. |
DocumentImpl |
getXMLResource(XmldbURI fileName,
int lockMode)
Return the document stored at the specified path. |
DocumentSet |
getXMLResourcesByDoctype(java.lang.String doctypeName,
DocumentSet result)
Get all the documents in this database matching the given document-type's name. |
void |
indexNode(Txn transaction,
StoredNode node,
NodePath currentPath)
Index a single node, which has been added through an XUpdate operation. |
void |
indexNode(Txn transaction,
StoredNode node,
NodePath currentPath,
boolean repairMode)
|
void |
insertNodeAfter(Txn transaction,
StoredNode previous,
StoredNode node)
Physically insert a node into the DOM storage. |
boolean |
isReadOnly()
Is the database running read-only? Returns false by default. |
void |
moveCollection(Txn transaction,
Collection collection,
Collection destination,
XmldbURI newName)
Move a collection and all its subcollections to another collection and rename it. |
void |
moveXMLResource(Txn transaction,
DocumentImpl doc,
Collection destination,
XmldbURI newName)
move Resource to another collection, with possible rename |
Serializer |
newSerializer()
|
StoredNode |
objectWith(org.w3c.dom.Document doc,
NodeId nodeId)
Get a node with given owner document and id from the database. |
StoredNode |
objectWith(NodeProxy p)
|
Collection |
openCollection(XmldbURI name,
int lockMode)
Open a collection for reading or writing. |
Collection |
openCollection(XmldbURI name,
long addr,
int lockMode)
Get collection object. |
XmldbURI |
prepend(XmldbURI uri)
|
void |
readBinaryResource(BinaryDocument blob,
java.io.OutputStream os)
|
void |
reindexCollection(Collection collection,
boolean repairMode)
|
void |
reindexCollection(Txn transaction,
Collection collection,
boolean repairMode)
|
void |
reindexCollection(XmldbURI collectionName)
Reindex a collection. |
void |
removeAllNodes(Txn transaction,
StoredNode node,
NodePath currentPath)
|
void |
removeBinaryResource(Txn transaction,
BinaryDocument blob)
Completely delete this binary document (descriptor and binary data). |
boolean |
removeCollection(Txn transaction,
Collection collection)
Remove the collection and all its subcollections from the database. |
void |
removeContentLoadingObserver(ContentLoadingObserver observer)
Observer Design Pattern: remove an observer. |
void |
removeNode(Txn transaction,
StoredNode node,
NodePath currentPath,
java.lang.String content)
Removes the Node Reference from the database. |
void |
removeXMLResource(Txn transaction,
DocumentImpl document,
boolean freeDocId)
|
void |
repair()
|
void |
saveCollection(Txn transaction,
Collection collection)
Saves the specified collection to storage. |
void |
shutdown()
Shut down the database instance. |
void |
storeBinaryResource(Txn transaction,
BinaryDocument blob,
byte[] data)
Stores the given data under the given binary resource descriptor (BinaryDocument). |
void |
storeBinaryResource(Txn transaction,
BinaryDocument blob,
java.io.InputStream is)
Stores the given data under the given binary resource descriptor (BinaryDocument). |
void |
storeNode(Txn transaction,
StoredNode node,
NodePath currentPath,
boolean fullTextIndex)
Store a node into the database. |
DocumentImpl |
storeTempResource(DocumentImpl doc)
store into the temporary collection of the database a given in-memory Document |
void |
storeXMLResource(Txn transaction,
DocumentImpl doc)
store Document entry into its collection. |
void |
sync(int syncEvent)
Sync dom and collection state data (pages) to disk. |
void |
updateNode(Txn transaction,
StoredNode node)
Update a node's data. |
Methods inherited from class org.exist.storage.DBBroker |
backupSymbolsTo, decReferenceCount, endElement, getBrokerPool, getConfiguration, getDOMIterator, getId, getReferenceCount, getSymbols, getUser, getXQueryService, incReferenceCount, indexNode, isCaseSensitive, removeXMLResource, setId, setUser, storeNode, toString |
Methods inherited from class java.util.Observable |
countObservers, deleteObserver, hasChanged, notifyObservers, notifyObservers |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final byte PREPEND_DB_ALWAYS
public static final byte PREPEND_DB_NEVER
public static final byte PREPEND_DB_AS_NEEDED
public static final byte COLLECTIONS_DBX_ID
public static final byte ELEMENTS_DBX_ID
public static final byte VALUES_DBX_ID
public static final byte WORDS_DBX_ID
public static final byte DOM_DBX_ID
public static final byte VALUES_QNAME_DBX_ID
public static final java.lang.String ELEMENTS_DBX
public static final java.lang.String VALUES_DBX
public static final java.lang.String VALUES_QNAME_DBX
public static final java.lang.String DOM_DBX
public static final java.lang.String COLLECTIONS_DBX
public static final java.lang.String WORDS_DBX
public static final java.lang.String PROPERTY_PAGE_SIZE
public static final java.lang.String PROPERTY_MIN_FREE_MEMORY
public static final java.lang.String PROPERTY_INDEX_DEPTH
public static final java.lang.String DEFAULT_DATA_DIR
public static final int DEFAULT_PAGE_SIZE
public static final int DEFAULT_INDEX_DEPTH
public static final int DEFAULT_MIN_MEMORY
public static final long TEMP_FRAGMENT_TIMEOUT
public static final int BUFFERS
public static final int DEFAULT_NODES_BEFORE_MEMORY_CHECK
public static final double DEFAULT_VALUE_CACHE_GROWTH
public static final double DEFAULT_VALUE_KEY_THRESHOLD
public static final double DEFAULT_VALUE_VALUE_THRESHOLD
public static final double DEFAULT_WORD_CACHE_GROWTH
public static final double DEFAULT_WORD_KEY_THRESHOLD
public static final double DEFAULT_WORD_VALUE_THRESHOLD
Constructor Detail |
public NativeBroker(BrokerPool pool, Configuration config) throws EXistException
Method Detail |
public void addObserver(java.util.Observer o)
public void deleteObservers()
public void clearContentLoadingObservers()
public void addContentLoadingObserver(ContentLoadingObserver observer)
public void removeContentLoadingObserver(ContentLoadingObserver observer)
public void endElement(StoredNode node, NodePath currentPath, java.lang.String content, long oldAddress)
endElement
in class DBBroker
node
- the current element nodecurrentPath
- node path leading to the elementcontent
- contains the string value of the element. Needed if a range index
is defined on it.oldAddress
- when copying a node, contains the storage address of the old
node.public void endRemove()
removeNode(Txn, StoredNode, NodePath, String)
.
endRemove
in class DBBroker
public int getBackendType()
getBackendType
in class DBBroker
public boolean isReadOnly()
DBBroker
isReadOnly
in class DBBroker
public int getPageSize()
getPageSize
in class DBBroker
public DOMFile getDOMFile()
public BTree getStorage(byte id)
public byte[] getStorageFileIds()
public IndexSpec getIndexConfiguration()
getIndexConfiguration
in class DBBroker
public Serializer getSerializer()
DBBroker
getSerializer
in class DBBroker
public Serializer newSerializer()
newSerializer
in class DBBroker
public ElementIndex getElementIndex()
getElementIndex
in class DBBroker
public NativeValueIndex getValueIndex()
getValueIndex
in class DBBroker
public NativeValueIndexByQName getQNameValueIndex()
getQNameValueIndex
in class DBBroker
public TextSearchEngine getTextEngine()
DBBroker
getTextEngine
in class DBBroker
public java.util.Iterator getDOMIterator(StoredNode node)
DBBroker
DOMFileIterator
starting at the
specified node.
getDOMIterator
in class DBBroker
public java.util.Iterator getNodeIterator(StoredNode node)
DBBroker
NodeIterator
starting at the
specified node.
getNodeIterator
in class DBBroker
node
-
public void cleanUpTempCollection()
cleanUpTempCollection
in class DBBroker
public XmldbURI prepend(XmldbURI uri)
public Collection getOrCreateCollection(Txn transaction, XmldbURI name) throws PermissionDeniedException
DBBroker
getOrCreateCollection
in class DBBroker
PermissionDeniedException
public Collection getCollection(XmldbURI name)
DBBroker
getCollection
in class DBBroker
public Collection getCollection(XmldbURI name, long addr)
DBBroker
getCollection
in class DBBroker
public Collection openCollection(XmldbURI name, int lockMode)
DBBroker
openCollection
in class DBBroker
name
- The collection pathlockMode
- one of the modes specified in class
Lock
public Collection openCollection(XmldbURI name, long addr, int lockMode)
name
- collection name
public void copyCollection(Txn transaction, Collection collection, Collection destination, XmldbURI newName) throws PermissionDeniedException, LockException
DBBroker
copyCollection
in class DBBroker
collection
- the resource to movedestination
- the destination collectionnewName
- the new name the resource should have in the destination
collection
PermissionDeniedException
LockException
public void moveCollection(Txn transaction, Collection collection, Collection destination, XmldbURI newName) throws PermissionDeniedException, LockException
DBBroker
moveCollection
in class DBBroker
collection
- the collection to movedestination
- the destination collectionnewName
- the new name the collection should have in the destination
collection
PermissionDeniedException
LockException
public boolean removeCollection(Txn transaction, Collection collection) throws PermissionDeniedException
DBBroker
removeCollection
in class DBBroker
PermissionDeniedException
public void saveCollection(Txn transaction, Collection collection) throws PermissionDeniedException
saveCollection
in class DBBroker
transaction
- collection
- Collection to store
PermissionDeniedException
public short getFreeCollectionId(Txn transaction) throws ReadOnlyException
ReadOnlyException
public short getNextCollectionId(Txn transaction) throws ReadOnlyException
ReadOnlyException
public void reindexCollection(XmldbURI collectionName) throws PermissionDeniedException
DBBroker
reindexCollection
in class DBBroker
collectionName
-
PermissionDeniedException
- public abstract void reindexCollection(String collectionName) throws
PermissionDeniedException;public void reindexCollection(Collection collection, boolean repairMode) throws PermissionDeniedException
PermissionDeniedException
public void reindexCollection(Txn transaction, Collection collection, boolean repairMode) throws PermissionDeniedException
PermissionDeniedException
public void dropCollectionIndex(Collection collection) throws PermissionDeniedException
PermissionDeniedException
public DocumentImpl storeTempResource(DocumentImpl doc) throws EXistException, PermissionDeniedException, LockException
storeTempResource
in class DBBroker
doc
-
PermissionDeniedException
LockException
EXistException
public void cleanUpTempResources()
cleanUpTempResources
in class DBBroker
public void cleanUpTempResources(java.util.List docs)
cleanUpTempResources
in class DBBroker
docs
- public void storeXMLResource(Txn transaction, DocumentImpl doc)
storeXMLResource
in class DBBroker
doc
- the document's metadata to store.public void storeBinaryResource(Txn transaction, BinaryDocument blob, byte[] data)
DBBroker
storeBinaryResource
in class DBBroker
blob
- the binary document descriptordata
- the document binary datapublic void storeBinaryResource(Txn transaction, BinaryDocument blob, java.io.InputStream is)
DBBroker
storeBinaryResource
in class DBBroker
blob
- the binary document descriptoris
- the document binary data as input streampublic org.w3c.dom.Document getXMLResource(XmldbURI fileName) throws PermissionDeniedException
getXMLResource
in class DBBroker
fileName
- absolute file name in the database;
name can be given with or without the leading path /db/shakespeare.
PermissionDeniedException
public DocumentImpl getXMLResource(XmldbURI fileName, int lockMode) throws PermissionDeniedException
DBBroker
getXMLResource
in class DBBroker
PermissionDeniedException
public byte[] getBinaryResource(BinaryDocument blob)
DBBroker
getBinaryResource
in class DBBroker
blob
- the binary document descriptor
public void readBinaryResource(BinaryDocument blob, java.io.OutputStream os)
readBinaryResource
in class DBBroker
public void getCollectionResources(Collection collection)
getCollectionResources
in class DBBroker
public DocumentSet getXMLResourcesByDoctype(java.lang.String doctypeName, DocumentSet result)
getXMLResourcesByDoctype
in class DBBroker
public DocumentSet getAllXMLResources(DocumentSet docs)
getAllXMLResources
in class DBBroker
docs
- a (possibly empty) document set to which the found
documents are added.public void getResourceMetadata(DocumentImpl doc)
getResourceMetadata
in class DBBroker
public void copyXMLResource(Txn transaction, DocumentImpl doc, Collection destination, XmldbURI newName) throws PermissionDeniedException, LockException
DBBroker
copyXMLResource
in class DBBroker
doc
- the resource to copydestination
- the destination collectionnewName
- the new name the resource should have in the destination
collection
LockException
PermissionDeniedException
public void moveXMLResource(Txn transaction, DocumentImpl doc, Collection destination, XmldbURI newName) throws PermissionDeniedException, LockException
moveXMLResource
in class DBBroker
doc
- the resource to movedestination
- the destination collectionnewName
- the new name the resource should have in the destination
collection
PermissionDeniedException
LockException
public void removeXMLResource(Txn transaction, DocumentImpl document, boolean freeDocId) throws PermissionDeniedException
removeXMLResource
in class DBBroker
PermissionDeniedException
public void removeBinaryResource(Txn transaction, BinaryDocument blob) throws PermissionDeniedException
DBBroker
removeBinaryResource
in class DBBroker
blob
- the binary document descriptor
PermissionDeniedException
- if you don't have the right to do thispublic int getFreeResourceId(Txn transaction) throws ReadOnlyException
ReadOnlyException
public int getNextResourceId(Txn transaction, Collection collection)
getNextResourceId
in class DBBroker
public void defragXMLResource(Txn transaction, DocumentImpl doc)
DBBroker
defragXMLResource
in class DBBroker
doc
- to defragpublic void checkXMLResourceConsistency(DocumentImpl doc) throws EXistException
checkXMLResourceConsistency
in class DBBroker
EXistException
public void checkXMLResourceTree(DocumentImpl doc)
checkXMLResourceConsistency(DocumentImpl)
checkXMLResourceTree
in class DBBroker
doc
- public void storeNode(Txn transaction, StoredNode node, NodePath currentPath, boolean fullTextIndex)
storeNode
in class DBBroker
node
- the node to be storedcurrentPath
- path expression which points to this node's
element-parent or to itself if it is an element (currently used by
the Broker to determine if a node's content should be
fulltext-indexed). @param index switch to activate fulltext indexationpublic void updateNode(Txn transaction, StoredNode node)
DBBroker
updateNode
in class DBBroker
node
- Description of the Parameterpublic void insertNodeAfter(Txn transaction, StoredNode previous, StoredNode node)
insertNodeAfter
in class DBBroker
public void removeNode(Txn transaction, StoredNode node, NodePath currentPath, java.lang.String content)
endRemove()
.
removeNode() just adds the node ids to the list in elementIndex
for later removal.
removeNode
in class DBBroker
public void removeAllNodes(Txn transaction, StoredNode node, NodePath currentPath)
removeAllNodes
in class DBBroker
public void indexNode(Txn transaction, StoredNode node, NodePath currentPath)
indexNode
in class DBBroker
public void indexNode(Txn transaction, StoredNode node, NodePath currentPath, boolean repairMode)
public java.lang.String getNodeValue(StoredNode node, boolean addWhitespace)
DBBroker
getNodeValue
in class DBBroker
public NodeSet getNodesEqualTo(NodeSet context, DocumentSet docs, int relation, int truncation, java.lang.String expr, java.text.Collator collator)
DBBroker
getNodesEqualTo
in class DBBroker
context
- the set of nodes to processdocs
- the current set of documentsrelation
- less-than, equal etc. One of the constants specified in
Constants
expr
- the string value to search forpublic StoredNode objectWith(org.w3c.dom.Document doc, NodeId nodeId)
DBBroker
objectWith
in class DBBroker
doc
- the document the node belongs tonodeId
- the node's unique identifierpublic StoredNode objectWith(NodeProxy p)
objectWith
in class DBBroker
public void repair() throws PermissionDeniedException
repair
in class DBBroker
PermissionDeniedException
public void flush()
DBBroker
flush
in class DBBroker
public void sync(int syncEvent)
DBBroker
Sync.MAJOR_SYNC
, sync all states (dom,
collection, text and element) to disk.
sync
in class DBBroker
syncEvent
- Sync.MAJOR_SYNC or Sync.MINOR_SYNCpublic void shutdown()
DBBroker
shutdown
in class DBBroker
public void closeDocument()
closeDocument
in class DBBroker
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |