|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface MicroKernel
The MicroKernel design goals/principles:
| Method Summary | |
|---|---|
String |
commit(String path,
String jsonDiff,
String revisionId,
String message)
Applies the specified changes on the specified target node. |
String |
diff(String fromRevisionId,
String toRevisionId,
String filter)
Returns the JSON diff representation of the changes between the specified revisions. |
void |
dispose()
Dispose this instance. |
long |
getChildNodeCount(String path,
String revisionId)
Returns the number of child nodes of the specified node. |
String |
getHeadRevision()
Return the id of the current head revision. |
String |
getJournal(String fromRevisionId,
String toRevisionId,
String filter)
Returns a revision journal, starting with fromRevisionId
and ending with toRevisionId. |
long |
getLength(String blobId)
Returns the length of the specified blob. |
String |
getNodes(String path,
String revisionId)
Returns the node tree rooted at the specified parent node with depth 1. |
String |
getNodes(String path,
String revisionId,
int depth,
long offset,
int count,
String filter)
Returns the node tree rooted at the specified parent node with the specified depth, maximum child node count and offset. |
String |
getRevisions(long since,
int maxEntries)
Returns a chronological list of all revisions since a specific point in time. |
boolean |
nodeExists(String path,
String revisionId)
Determines whether the specified node exists. |
int |
read(String blobId,
long pos,
byte[] buff,
int off,
int length)
Reads up to length bytes of data from the specified blob into
the given array of bytes. |
String |
waitForCommit(String oldHeadRevision,
long maxWaitMillis)
Wait for a commit to occur that is newer than the given revision number. |
String |
write(InputStream in)
Stores the content of the given stream and returns an associated identifier for later retrieval. |
| Method Detail |
|---|
void dispose()
String getHeadRevision()
throws MicroKernelException
MicroKernelException - if an error occurs
String getRevisions(long since,
int maxEntries)
throws MicroKernelException
[ { "id" : "", "ts" : }, ... ]
since - timestamp (ms) of earliest revision to be returnedmaxEntries - maximum #entries to be returned;
if < 0, no limit will be applied.
MicroKernelException - if an error occurs
String waitForCommit(String oldHeadRevision,
long maxWaitMillis)
throws MicroKernelException,
InterruptedException
maxWaitMillis - the maximum number of milliseconds to wait (0 if the
method should not wait).
MicroKernelException - if an error occurs
InterruptedException - if the thread was interrupted
String getJournal(String fromRevisionId,
String toRevisionId,
String filter)
throws MicroKernelException
fromRevisionId
and ending with toRevisionId.
Format:
[ { "id" : "<revisionId>", "ts" : "<revisionTimestamp>", "msg" : "<commitMessage>", "changes" : "<JSON diff>" }, ... ]
fromRevisionId - first revision to be returned in journaltoRevisionId - last revision to be returned in journal, if null the current head revision is assumedfilter - (optional) filter criteria
(e.g. path, property names, etc);
TODO specify format and semantics
MicroKernelException - if an error occurs
String diff(String fromRevisionId,
String toRevisionId,
String filter)
throws MicroKernelException
[ { "id" : "<revisionId>", "ts" : "<revisionTimestamp>", "msg" : "<commitMessage>", "changes" : "<JSON diff>" }, ... ]
fromRevisionId - a revisiontoRevisionId - another revision, if null the current head revision is assumedfilter - (optional) filter criteria
(e.g. path, property names, etc);
TODO specify format and semantics
MicroKernelException - if an error occurs
boolean nodeExists(String path,
String revisionId)
throws MicroKernelException
path - path denoting noderevisionId - revision, if null the current head revision is assumed
true if the specified node exists, otherwise false
MicroKernelException - if an error occurs
long getChildNodeCount(String path,
String revisionId)
throws MicroKernelException
getNodes(path, revisionId, 0, 0, 0) and evaluating
the :childNodeCount property.
path - path denoting noderevisionId - revision, if null the current head revision is assumed
MicroKernelException - if an error occurs
String getNodes(String path,
String revisionId)
throws MicroKernelException
:childNodeCount). Example:
{
"someprop": "someval",
":childNodeCount": 2,
"child1" : {
"prop1": "foo",
":childNodeCount": 2
},
"child2": {
"prop1": "bar"
":childNodeCount": 0
}
}
Remarks:
:childNodeCount equals 0, then the
node does not have any child nodes.
:childNodeCount is larger than the number
of returned child nodes, then the node has more child nodes than those
included in the tree. Large number of child nodes can be retrieved in
chunks using getNodes(String, String, int, long, int, String)getNodes(path, revisionId, 1, 0, -1, null)
path - path denoting root of node tree to be retrievedrevisionId - revision, if null the current head revision is assumed
MicroKernelException - if an error occurs
String getNodes(String path,
String revisionId,
int depth,
long offset,
int count,
String filter)
throws MicroKernelException
depth parameter:
| depth = 0 | properties, including :childNodeCount and
child node names (i.e. empty child node objects) |
| depth = 1 | properties, child nodes and their properties (including
:childNodeCount) |
| depth = 2 | [and so on...] |
offset and count parameters are only applied to the
direct child nodes of the root of the returned node tree.
path - path denoting root of node tree to be retrievedrevisionId - revision, if null the current head revision is assumeddepth - maximum depth of returned treeoffset - start position in the iteration order of child nodes (0 to start at the
beginning)count - maximum number of child nodes to retrieve (-1 for all)filter - (optional) filter criteria
(e.g. names of properties to be included, etc);
TODO specify format and semantics
MicroKernelException - if an error occurs
String commit(String path,
String jsonDiff,
String revisionId,
String message)
throws MicroKernelException
If path.length() == 0 the paths specified in the
jsonDiff are expected to be absolute.
The implementation tries to merge changes if the revision id of the commit is set accordingly. As an example, deleting a node is allowed if the node existed in the given revision, even if it was deleted in the meantime.
path - path denoting target nodejsonDiff - changes to be applied in JSON diff format.revisionId - revision the changes are based on, if null the current head revision is assumedmessage - commit message
MicroKernelException - if an error occurs
long getLength(String blobId)
throws MicroKernelException
blobId - blob identifier
MicroKernelException - if an error occurs
int read(String blobId,
long pos,
byte[] buff,
int off,
int length)
throws MicroKernelException
length bytes of data from the specified blob into
the given array of bytes. An attempt is made to read as many as
length bytes, but a smaller number may be read.
The number of bytes actually read is returned as an integer.
blobId - blob identifierpos - the offset within the blobbuff - the buffer into which the data is read.off - the start offset in array buff
at which the data is written.length - the maximum number of bytes to read
-1 if there is no more data because the end of
the blob content has been reached.
MicroKernelException - if an error occurs
String write(InputStream in)
throws MicroKernelException
If identical stream content has been stored previously, then the existing identifier will be returned instead of storing a redundant copy.
The stream is closed by this method.
in - InputStream providing the blob content
MicroKernelException - if an error occurs
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||