Versioning Action Overview

Gw
This is how the versioning team sees the actions and the resulting interaction with other components.

Added a summary between the table and the implementation things

-- MichielOvereem - 24 Sep 2004

implementation proposal
I've written a very informal pseudo implementation for every action. Just click on the name of the action. So now we can make a list of methods for the RAT and Storage group to form a interface.

The idea here is that the methods for Storage are called through a Storage object, which is created with a certain user-context (or anonymous). SO the constructor would be: new Storage(user-context) or new Storage().

The RAT methods are called on a StyleSheet. We can get this object through the StyleSheetLocator. I thought about a static method like StyleSheetLocator.getStyleSheet(action, pathinfo, user-context). So far for the object creation. The methods are below this page.

It looks at this moment that everything can be done in about two method calls from our side, so that's very good :). But I'm sure I forgot some stuff. So please comment and change this.

-- MichielOvereem - 23 Sep 2004

Action Kind of HTTP request Component to interact with Redirect to
Edit GET RAT -
Preview POST RAT -
Save POST Storage Show
Show GET RAT -
Update GET Storage Show
Move POST Storage Show
Delete POST Storage Show
Revert POST Storage Show
Praise GET RAT -
Diff GET RAT -
Log GET RAT -
Conflict GET RAT -
Resolve POST Storage Show
Status GET RAT -

Note that this actions can be executed on WikiWebs (files) and directories.

Overview of the methods needed:

Team Class Methods
RAT StyleSheetLocator getStyleSheet(action, pathinfo, user-context)
RAT StyleSheetLocator getStyleSheet(action, user-context)
RAT StyleSheetLocator getStyleSheet(action, pathinfo, revision1, revision2, user-context)
RAT StyleSheetLocator getStyleSheet(action, revision, user-context)
RAT StyleSheet getXhtml()
RAT StyleSheet getXhtml(preview-text)
RAT StyleSheet getXhtml(svn-revision-info, svn-status-info)
     
Storage Storage move(original-pathinfo, new-pathinfo)
Storage Storage update()
Storage Storage store(commit-message)
Storage Storage getRevisionInfo(pathinfo)
Storage Storage getStatusInfo(pathinfo)
Storage Storage delete(new-pathinfo)
Storage Storage revert(new-pathinfo, to-revision)
Storage Storage resolve(pathinfo)

Edit

StyleSheet s = StyleSheetLocator.getStyleSheet(edit-action, pathinfo, user-context)

s.getXhtml();

Preview

StyleSheet s = StyleSheetLocator.getStyleSheet(preview-action, user-context)

s.getXhtml(previewed-text);

Save

Storage s = Storage(user-context)

s.store(commit-message)

Show

StyleSheet s = StyleSheetLocator.getStyleSheet(view-action, pathinfo, user-context)

Storage st = new Storage(user-context)

st.getRevisionInfo(pathinfo)

st.getStatusInfo(pathinfo)

s.getXhtml(svn-revision-info, svn-status-info);

Update

Storage s = Storage(user-context)

s.update()

Move

Storage s = Storage(user-context)

s.move(original-pathinfo, new-pathinfo)

Delete

Storage s = Storage(user-context)

s.delete(new-pathinfo)

Revert

Storage s = Storage(user-context)

s.revert(new-pathinfo, to-revision)

Praise

StyleSheet s = StyleSheetLocator.getStyleSheet(praise-action, pathinfo, user-context)

s.getXhtml();

Diff

StyleSheet s = StyleSheetLocator.getStyleSheet(diff-action, pathinfo, revision1, revision2, user-context)

s.getXhtml();

Log

StyleSheet s = StyleSheetLocator.getStyleSheet(log-action, revision, user-context)

s.getXhtml();

Conflict

StyleSheet s = StyleSheetLocator.getStyleSheet(conflict-action, pathinfo, user-context)

s.getXhtml();

Resolve

Storage s = Storage(user-context)

s.resolve(pathinfo)

Status

StyleSheet s = StyleSheetLocator.getStyleSheet(status-action, pathinfo, user-context)

s.getXhtml();