|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectedu.uky.rch.ept.data.DataSourceDriver
edu.uky.rch.ept.data.filesystem.FileSystemXPathEngine
Implements an ARCHway datasource driver to provide access to the local file system.
| Nested Class Summary | |
static class |
FileSystemXPathEngine.Interval
|
| Field Summary |
| Fields inherited from interface edu.uky.rch.ept.data.IDataAccessMethods |
EOF, RT_DOCUMENT, RT_NODELIST, RT_STRINGS |
| Constructor Summary | |
FileSystemXPathEngine()
Instantiates the driver. |
|
| Method Summary | |
boolean |
canRead(String address)
Check if the resource specified by the address can be read. |
boolean |
canWrite(String address)
Check if the resource specified by the address can be written to. |
boolean |
createCollection(String address)
Creates a collection specified by the address. |
boolean |
deleteCollection(String address,
boolean force)
Deletes the collection specified by the address. |
boolean |
deleteCXML(String address,
String dtdID,
String location)
Removes the node at the specified location in the resource. |
boolean |
deleteResource(String address)
Delete a resource if it exists. |
boolean |
deleteXML(String address,
String location)
Deletes the node pointed to by the xpath, from the xml resource. |
IAddressSelector |
getAddressSelector()
Returns a new address selector for this data source. |
ResourceList |
getCollectionContents(String collectionAddress)
Returns a ResourceList containing resource descriptors for each of the resources and collections in the specified collection. |
String |
getCXML(String address,
String[] dtdIDs)
Combine the specified hierarchies of the CXML content and return the result as a pseudo-XML string. |
String |
getDTD(String ID)
Retrieves the specified DTD |
org.eclipse.swt.graphics.ImageData |
getImage(String address)
Retrieves the Image from the specified address |
BufferedInputStream |
getInputStream(String address)
Create and return a BufferedInputStream for the resource. |
BufferedOutputStream |
getOutputStream(String address)
Create and return a BufferedOutputStream for the resource. |
BufferedOutputStream |
getOutputStream(String address,
boolean append)
Create and return a (possibly append-only) BufferedOutputStream for the resource. |
String |
getText(String address,
int beginIndex,
int endIndex)
Retrieves the specified text data from the resource at the given address. |
String |
getXML(String address)
Retrieves the XML data from the specified address. |
org.dom4j.Document |
getXMLDocument(String address)
Retrieves the XML data from the specified address. |
void |
insertCXML(String address,
String dtdID,
String locate,
org.dom4j.Node newContent)
Inserts the given XML node into the CXML resource at the indicated location. |
void |
insertText(String address,
int atIndex,
String newContent)
Inserts the new text content into the resource starting at the index specified. |
void |
insertXML(String address,
String location,
org.dom4j.Node newContent)
Inserts the given xml node into the xml resource immediately after the node specified by the xpath. |
void |
insertXML(String address,
String dtdID,
String xpath,
org.dom4j.Node newContent)
|
boolean |
isCollection(String address)
Returns true if the specified address points to a collection. |
Object |
queryCXML(String address,
String[] dtdIDs,
String query,
short returnType)
Executes the given query on the CXML resource and returns the results as a list of org.dom4j.Nodes. |
Object |
queryXML(String address,
String query,
short returnType)
Executes the given query on the XML resource and returns the results in the format specified by the returnType parameter. |
boolean |
renameResource(String srcAddress,
String destAddress,
boolean force)
Move or rename a resource from one address to another. |
void |
replaceCXML(String address,
String dtdID,
String location,
org.dom4j.Node newContent)
Replaces the node at the specified location in the resource with a new node at the same location. |
void |
replaceCXMLContent(String xmlResourceAddress,
int beginIndex,
int endIndex,
String newContent)
(unimplemented) Treats a CXML resource as text resource (all tags are treated as though they did not exist) and replaces the text from beginIndex to endIndex-1 with the new text content. |
void |
replaceText(String address,
int beginIndex,
int endIndex,
String newContent)
Replaces the specified text with the new content. |
void |
replaceXML(String address,
String location,
org.dom4j.Node newContent)
Replaces the specified node in the resource with the new node. |
void |
replaceXML(String address,
String dtdID,
String xpath,
org.dom4j.Node newContent)
|
void |
replaceXMLContent(String address,
int beginIndex,
int endIndex,
String newContent)
Treats an xml resource as text resource (all tags are ignored as if they didnt exist) and replaces the text from beginIndex to endIndex-1 with the new text content. |
ResourceList |
scanCollection(String address,
Pattern pattern,
boolean includeCollections)
Returns a ResourceList containing resource descriptors for each of the resources (and possibly collections) located within the specified collection which match the given pattern. |
boolean |
storeCXML(String address,
String[] dtdIDs,
String content,
boolean force)
Creates a new CXML resource. |
boolean |
storeDTD(String ID,
String content,
boolean force)
Creates a new DTD resource with the given content. |
boolean |
storeImage(String address,
URL source,
boolean force)
Imports the image from the source & stores it at the given address. |
boolean |
storeResource(String address,
BufferedInputStream source,
boolean force)
Create a new resource with the content from the source. |
boolean |
storeText(String address,
String content,
boolean force)
Creates a new text resource and writes the given content into it. |
boolean |
storeXML(String address,
org.dom4j.Document content,
boolean force)
Creates a new XML resource with the given content, reindented for readability. |
boolean |
storeXML(String address,
org.dom4j.Document content,
boolean force,
boolean indent)
Creates a new XML resource with the given content, possibly reindented. |
boolean |
storeXML(String address,
String[] dtdIDs,
String content,
boolean force)
|
| Methods inherited from class edu.uky.rch.ept.data.DataSourceDriver |
getName, getProtocolIdentifier, getWizardPageClass, setName, setProtocolIdentifier, setWizardPageClass, stripProtocolFromAddress, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public FileSystemXPathEngine()
| Method Detail |
public boolean canRead(String address)
throws MalformedAddressException
IGenericResourceAccessMethods
address - address of the resource
MalformedAddressException
public boolean canWrite(String address)
throws MalformedAddressException
IGenericResourceAccessMethods
MalformedAddressException
public boolean isCollection(String address)
throws MalformedAddressException
ICollectionAccessMethods
address - the address to check
MalformedAddressException
public boolean createCollection(String address)
throws MalformedAddressException,
IOException
ICollectionAccessMethods
address - address of the collection
MalformedAddressException
IOException
public boolean deleteCollection(String address,
boolean force)
throws MalformedAddressException
ICollectionAccessMethods
address - address of the collectionforce - if true, then the collection will be deleted even if it contains resources and other sub-collections.
Use with caution, as all resources contained within the collection will be deleted
MalformedAddressException
public boolean deleteResource(String address)
throws MalformedAddressException
IGenericResourceAccessMethods
address - address of the resource
MalformedAddressException
public String getText(String address,
int beginIndex,
int endIndex)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
ITextAccessMethods
address - address of the resourcebeginIndex - the beginning index, inclusive.endIndex - the endIndex, exclusive.
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public boolean storeText(String address,
String content,
boolean force)
throws MalformedAddressException,
IOException
ITextAccessMethods
address - the address of the resourcecontent - the data to be writtenforce - if true then the resource is overwritten if it already exists
MalformedAddressException
IOException
public void insertText(String address,
int atIndex,
String newContent)
throws MalformedAddressException,
ResourceNotFoundException,
IndexOutOfBoundsException,
IOException
ITextAccessMethods
address - the address of the resourceatIndex - offset from the beginning of the resourcenewContent - text to be inserted
ResourceNotFoundException - if the resource doesnt exist
IndexOutOfBoundsException - if the atIndex is negative and not EOF
MalformedAddressException
IOException
public void replaceText(String address,
int beginIndex,
int endIndex,
String newContent)
throws MalformedAddressException,
ResourceNotFoundException,
IndexOutOfBoundsException,
IOException
ITextAccessMethods
address - address of the resourcebeginIndex - beginning index, inclusiveendIndex - end index, exclusivenewContent - new content to replace the text
IndexOutOfBoundsException - if the beginIndex is negative, or beginIndex is larger than endIndex and endIndex is not EOF.
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public org.dom4j.Document getXMLDocument(String address)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IXMLAccessMethods
address - address of the xml resource
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public String getXML(String address)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IXMLAccessMethods
address - address of the xml resource
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public boolean storeXML(String address,
org.dom4j.Document content,
boolean force,
boolean indent)
throws MalformedAddressException,
IOException
IXMLAccessMethods
address - the address of the resourcecontent - the Document to be writtenforce - if true then the resource is overwritten if it already existsindent - if true reindent the document, compressing contiguous
sequences of whitespace characters in content.
MalformedAddressException
IOException
public boolean storeXML(String address,
org.dom4j.Document content,
boolean force)
throws MalformedAddressException,
IOException
IXMLAccessMethodsIXMLAccessMethods.storeXML(String, Document, boolean, boolean)
instead to preserve whitespace. This method is to be used for XML
resources that do not have concurrent hierarchies.
address - the address of the resource.content - the Document to be writtenforce - if true then the resource is overwritten if it already exists
MalformedAddressException
IOException
public boolean storeXML(String address,
String[] dtdIDs,
String content,
boolean force)
throws MalformedAddressException,
IOException
MalformedAddressException
IOException
public void insertXML(String address,
String dtdID,
String xpath,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
IOException,
InvalidNodePathException
MalformedAddressException
ResourceNotFoundException
IOException
InvalidNodePathException
public void replaceXML(String address,
String dtdID,
String xpath,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
MalformedAddressException
ResourceNotFoundException
InvalidNodePathException
IOException
public void replaceXMLContent(String address,
int beginIndex,
int endIndex,
String newContent)
throws MalformedAddressException,
ResourceNotFoundException,
IndexOutOfBoundsException,
IOException
IXMLAccessMethods
address - address of the resourcebeginIndex - beginIndex, inclusiveendIndex - endIndex, exclusivenewContent - new text content
ResourceNotFoundException - if the resource doesnt exist
IndexOutOfBoundsException - if the beginIndex is negative, or beginIndex is larger than endIndex and endIndex is not EOF.
MalformedAddressException
IOException
public String getDTD(String ID)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IDTDAccessMethods
ID - identifier of the DTD
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public boolean storeDTD(String ID,
String content,
boolean force)
throws MalformedAddressException,
IOException
IDTDAccessMethods
ID - the identifier for the DTDcontent - DTD contentforce - if true, then the resource is overwritten if it already exists
MalformedAddressException
IOException
public org.eclipse.swt.graphics.ImageData getImage(String address)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IImageAccessMethods
address - address of the Image
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public boolean storeImage(String address,
URL source,
boolean force)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IImageAccessMethods
address - the address of the resourcesource - URL pointing to the image to be importedforce - if true, then the resource is overwritten if it already exists
MalformedAddressException
ResourceNotFoundException
IOException
public ResourceList getCollectionContents(String collectionAddress)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
ICollectionAccessMethodsThere is no guarantee that the resource descriptors in the resulting resourcelist will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order of resource names.
collectionAddress - path to the collection
ResourceNotFoundException - if the specified collection doesnt exist
MalformedAddressException
IOException
public ResourceList scanCollection(String address,
Pattern pattern,
boolean includeCollections)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
ICollectionAccessMethodsICollectionAccessMethods.getCollectionContents(java.lang.String), this method perfoms a recursive search.
There is no guarantee that the resource descriptors in the resulting resourcelist will appear in any specific order; they are not, in particular, guaranteed to appear in alphabetical order of resource names.
address - path to the collectionpattern - pattern to match againstincludeCollections -
ResourceNotFoundException - if the specified collection doesnt exist
MalformedAddressException
IOException
public BufferedInputStream getInputStream(String address)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IGenericResourceAccessMethods
address - address of the resource
IOException - if there was an error opening the stream
ResourceNotFoundException - if the resource did not exist
MalformedAddressException - if the specified address is invalid
public BufferedOutputStream getOutputStream(String address)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IGenericResourceAccessMethods
address - address of the resource
IOException - if there was an error opening the stream
ResourceNotFoundException - if the resource did not exist and
cannot be created
MalformedAddressException - if the specified address is invalid
public BufferedOutputStream getOutputStream(String address,
boolean append)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IGenericResourceAccessMethods
address - address of the resource
IOException - if there was an error opening the stream.
ResourceNotFoundException - if the resource did not exist and
cannot be created
MalformedAddressException - if the specified address is invalid
public boolean renameResource(String srcAddress,
String destAddress,
boolean force)
throws ResourceNotFoundException,
MalformedAddressException,
IOException
IGenericResourceAccessMethods
srcAddress - the current address of the resourcedestAddress - the new address of the resourceforce - if true, the resource at destAddress is overwritten if it
already exists
ResourceNotFoundException
MalformedAddressException
IOException
public boolean storeResource(String address,
BufferedInputStream source,
boolean force)
throws MalformedAddressException,
IOException
IGenericResourceAccessMethods
address - address of the new resourcesource - a BufferedInputStream from which to read the contentforce - if true then the resource is overwritten if it already exists
MalformedAddressException
IOException
public void insertCXML(String address,
String dtdID,
String locate,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IConcurrentXMLAccessMethods[[beg:end]]", where
beg and end are the
integer coordinates of the node, used to position it with respect to
other nodes.
address - address of the resource.dtdID - identifier of the corresponding DTD.locate - location for the new node, as specified above.newContent - new node, which should be either an
org.dom4j.Element or an org.dom4j.Text.
The node's content is ignored; only the top-level node itself is
used.
InvalidNodePathException - if the given location is invalid.
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public String getCXML(String address,
String[] dtdIDs)
throws MalformedAddressException,
ResourceNotFoundException,
IOException
IConcurrentXMLAccessMethodsnull or
an empty array, combine all the hierarchies. If dtdIDs contains a
single DTD and the document is well-formed with respect to that DTD,
the result will be proper XML.
address - address of the CXML resource.dtdIDs - an array of DTD identifiers, specifying which hierarchies
to combine. If this parameter is null or empty, all the
hierarchies are combined.
String with the combined hierarchies.
ResourceNotFoundException - if the resource doesn't exist
MalformedAddressException
IOException
public boolean storeCXML(String address,
String[] dtdIDs,
String content,
boolean force)
throws MalformedAddressException,
IOException
IConcurrentXMLAccessMethodscontent should be the empty string;
if not, that content will not be located properly with respect to
other nodes. This will be fixed.
address - the address at which to store the CXML resourcedtdIDs - an array of DTD identifierscontent - the CXML data to be written (currently, the empty string)force - flag indicating whether the resource should be overwritten
if it already exists.
MalformedAddressException
IOException
public boolean deleteCXML(String address,
String dtdID,
String location)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IConcurrentXMLAccessMethods[[beg:end]]|tag",
where beg and end are the
integer coordinates of the node (the coordinates passed to
IConcurrentXMLAccessMethods.insertCXML(java.lang.String, java.lang.String, java.lang.String, org.dom4j.Node) when the node was originally inserted) and
tag is the tag name of the node to be removed
(or "st:string" to remove text content).
address - address of the resourcedtdID - identifier of the corresponding DTD.location - location and tag name of an existing node, as
specified above.
InvalidNodePathException - if the location is invalid.
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public void replaceCXMLContent(String xmlResourceAddress,
int beginIndex,
int endIndex,
String newContent)
throws MalformedAddressException,
ResourceNotFoundException,
IndexOutOfBoundsException,
IOException
IConcurrentXMLAccessMethods
xmlResourceAddress - address of the resourcebeginIndex - beginIndex, inclusiveendIndex - endIndex, exclusivenewContent - new text content
ResourceNotFoundException - if the resource doesnt exist
IndexOutOfBoundsException - if the beginIndex is negative, or beginIndex is larger than endIndex and endIndex is not EOF.
MalformedAddressException
IOException
public void replaceCXML(String address,
String dtdID,
String location,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IConcurrentXMLAccessMethodsIConcurrentXMLAccessMethods.deleteCXML(java.lang.String, java.lang.String, java.lang.String).
address - address of the resource.dtdID - identifier of the corresponding DTD.location - location and tag name of an existing node, as
specified by IConcurrentXMLAccessMethods.deleteCXML(java.lang.String, java.lang.String, java.lang.String).newContent - the node to replace the deleted node; this should
be as the argument to IConcurrentXMLAccessMethods.insertCXML(java.lang.String, java.lang.String, java.lang.String, org.dom4j.Node).
InvalidNodePathException - if the given location is invalid.
ResourceNotFoundException - if the resource doesnt exist.
MalformedAddressException
IOException
public Object queryCXML(String address,
String[] dtdIDs,
String query,
short returnType)
throws MalformedAddressException,
ResourceNotFoundException,
MalformedQueryException,
IOException,
InvalidTypeException
IConcurrentXMLAccessMethodsorg.dom4j.Nodes. Each such node is either
an Element or a Text object.
The query is of the form
"op[[from:to]]
where from and to are the coordinates of the context
range (these are the same coordinates used by IConcurrentXMLAccessMethods.insertCXML(java.lang.String, java.lang.String, java.lang.String, org.dom4j.Node)).
op indicates the type of query to perform, and may be one of:
children: return all children (strict descendants not
strictly contained in other descendants). Does not return nodes which
cover exactly the context range.
ancestors: return all ancestors (nodes which
strictly contain the context range).
parents: return all parents (ancestors which
do not strictly contain other ancestors).
address - address of the XML resourcedtdIDs - an array of DTD identifiers, specifying which of the
hierarchies to consider for the query. If this parameter is
null or empty, then all the hierarchies are considered.query - the query, as specified above.returnType - return type. This argument is currently ignored.
List of dom4j Element
and Text nodes.
InvalidTypeException - if the return type specified is
unrecognized (should never happen)
MalformedQueryException - if the query is malformed
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public void insertXML(String address,
String location,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IXMLAccessMethods
address - address of the resourcelocation - valid path to a nodenewContent - new node
ResourceNotFoundException - if the resource doesnt exist
InvalidNodePathException - if the given xpath does not point to a node (valid location)
MalformedAddressException
IOException
public boolean deleteXML(String address,
String location)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IXMLAccessMethods
address - address of the resourcelocation - valid path to an existing node in the resource
ResourceNotFoundException - if the resource doesnt exist
InvalidNodePathException - if the given xpath does not point to a node (valid location) in the resource
MalformedAddressException
IOException
public void replaceXML(String address,
String location,
org.dom4j.Node newContent)
throws MalformedAddressException,
ResourceNotFoundException,
InvalidNodePathException,
IOException
IXMLAccessMethods
address - address of the resourcelocation - valid path to an existing node in the resourcenewContent - new node
InvalidNodePathException - if the given xpath does not point to a node (valid location) in the resource
ResourceNotFoundException - if the resource doesnt exist
MalformedAddressException
IOException
public Object queryXML(String address,
String query,
short returnType)
throws MalformedAddressException,
ResourceNotFoundException,
MalformedQueryException,
IOException,
InvalidTypeException
IXMLAccessMethods
address - address of the XML resourcequery - the queryreturnType - return type.
The following values are valid for the return type:
MalformedQueryException - if the query is malformed
ResourceNotFoundException - if the resource doesnt exist
InvalidTypeException - if the return type specified is unrecognized
MalformedAddressException
IOExceptionpublic IAddressSelector getAddressSelector()
IDataSourceDriver
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||