Getting Started on a Custom Store
First, GetYourArmsAroundIt
Maybe you only want to CreateAnewDatabaseAdapter
Sequence Store: the motivation behind it.
Tiny introduction how to create a complete custom store [IntroFullCustomStore]
Some Things It Took Awhile to Figure Out
RevisionDescriptorStore
This store works with NodeRevisionDescriptor and NodeRevisionNumber objects.
When creating a new NodeRevisionDescriptor the keys in the properties Hashtable must be equal to the namespace of the NodeProperty plus the name of the NodeProperty.
ex: (namespace = "DAV:") + (name = "getlastmodified") = (key = "DAV:getlastmodified")
RevisionDescriptorsStore
A store for managing NodeRevisionDescriptors. Here is a brief description of the arguments to the NodeRevisionDescriptors class: .
uri
The path to the resource. eg: /slide/files/test/foo.txt
initialRevision
FIXME: I don't know what this is for, but an empty NodeRevisionNumber seems to work.
workingRevisions
FIXME: I don't know what this is for. A Hashtable with the format key = String, value = NodeRevisionNumber works.
latestRevisionNumbers
A Hashtable with the format key = branch name (String), value = NodeRevisionNumber where the value is the largest revision number for this Uri. The default branch name is "main" if you just need something to put there.
branches
A Hashtable with the format key = branch name (String), value = Vector of NodeRevisionNumbers where the Vector contains all of the revision numbers for this Uri that are older than the current revision number.
isVersioned
- boolean indicating whether or not this resource is versioned.
All
If you make a read-only store throw exceptions on the create/store methods, you won't be able to get the root node of the store to show up in a directory listing. Throwing the exception prevents the child binding from being set for the "/" SubjectNode.