org.sourcejammer.project.model
Interface NodeLibrary

All Known Implementing Classes:
NodeLibraryFS

public interface NodeLibrary

Interface for a factory class that retrieves or constructs nodes based on unique ID. A Project/File node cache could be added to the classes implementing this interface


Method Summary
 void deleteNode(ControllerNode node)
           
 FileNode getFileNode(long nodeID)
          Retrieve or construct a FileNode based on it's node id.
 FileNode getFileNode(long nodeID, boolean readOnly)
          Retrieve or construct a FileNode based on it's node id.
 FileNode getNewFileNodeFromModel()
          Subclasses should implement this to return a new FileNode object.
 LabelInfo getNewLabelInfoFromModel()
           
 ProjectNode getNewProjectFromModel()
          Subclasses should implement this to return a new ProjectNode object.
 long getNextVersionNodeID()
          Returns next unique ID for a version.
 java.lang.String getProjectChildName(ProjectChild child)
          Low impact way of getting a node's name without adding the node or any of it's children to the cache.
 ProjectNode getProjectNode(long nodeID)
          Retrieve or construct a ProjectNode based on it's node id.
 java.io.File getSourceFilePointer(org.sourcejammer.project.view.NodeInfo versionNode)
           
 long lockNode(ControllerNode nd)
          Locks the node and returns the key.
 long lockNode(ControllerNode nd, long lTimeOutValue)
          Locks the node and returns the key used to lock it.
 void releaseNode(ControllerNode nd)
          Releases the node after use.
 void removeVersion(FileNode ndFile, long fileKey, long versionID)
          Remove all files assocaited with version from model.
 Label retrieveLabel(LabelInfo labelInfo)
           
 org.sourcejammer.project.NodeList retrieveLabelList()
          Loads all the labels for this archive as a NodeList.
 java.lang.String retrieveVersionComment(long versionID)
           
 Delta retrieveVersionDelta(org.sourcejammer.project.view.NodeInfo versionNode)
           
 java.io.File retrieveVersionDeltaFile(org.sourcejammer.project.view.NodeInfo versionNode)
           
 byte[] retrieveVersionFull(org.sourcejammer.project.view.NodeInfo versionNode)
           
 Delta retrieveVersionTextDelta(org.sourcejammer.project.view.NodeInfo versionNode)
           
 TextLineReader retrieveVersionTextLineReader(org.sourcejammer.project.view.NodeInfo versionNode)
          When implemented, this method returns the full source of the specified VersionNode as a TextLineReader.
 void storeLabel(LabelInfo labelInfo, Label label, org.sourcejammer.project.NodeList allLabels)
          Subclasses should implement to store the labeled version info.
 void storeVersionComment(FileNode ndFile, long fileKey, long versionID, java.lang.String comment)
           
 void storeVersionDelta(FileNode ndFile, long fileKey, long versionID, java.io.File file)
          Subclasses should implement to store file delta in the model implementation.
 void storeVersionFull(FileNode ndFile, long fileKey, long versionID, java.io.File file)
          Subclasses should implement to store version file in the model implementation.
 void storeVersionTextDiff(FileNode ndFile, long fileKey, long versionID, TextDiff file)
           
 

Method Detail

getProjectNode

public ProjectNode getProjectNode(long nodeID)
                           throws FileAccessException,
                                  ProjectDoesNotExistException,
                                  SecurityException
Retrieve or construct a ProjectNode based on it's node id.

FileAccessException
ProjectDoesNotExistException
SecurityException

getFileNode

public FileNode getFileNode(long nodeID)
                     throws FileAccessException,
                            FileDoesNotExistException,
                            SecurityException
Retrieve or construct a FileNode based on it's node id.

FileAccessException
FileDoesNotExistException
SecurityException

getFileNode

public FileNode getFileNode(long nodeID,
                            boolean readOnly)
                     throws FileAccessException,
                            FileDoesNotExistException,
                            SecurityException
Retrieve or construct a FileNode based on it's node id.

Parameters:
nodeID - -- unique id of the FileNode to retrieve.
readOnly - -- if true, the FileNode will not be lock-able and should probably be a clone of any FileNode stored in the cache.
FileAccessException
FileDoesNotExistException
SecurityException

releaseNode

public void releaseNode(ControllerNode nd)
                 throws FileAccessException
Releases the node after use.

FileAccessException

storeLabel

public void storeLabel(LabelInfo labelInfo,
                       Label label,
                       org.sourcejammer.project.NodeList allLabels)
                throws FileAccessException
Subclasses should implement to store the labeled version info.

FileAccessException

storeVersionFull

public void storeVersionFull(FileNode ndFile,
                             long fileKey,
                             long versionID,
                             java.io.File file)
                      throws FileAccessException
Subclasses should implement to store version file in the model implementation. FileNode must be locked and passed key must "fit" the FileNode, or ControllerNodeLockException is thrown.

FileAccessException

storeVersionDelta

public void storeVersionDelta(FileNode ndFile,
                              long fileKey,
                              long versionID,
                              java.io.File file)
                       throws FileAccessException
Subclasses should implement to store file delta in the model implementation. FileNode must be locked and passed key must "fit" the FileNode, or ControllerNodeLockException is thrown.

FileAccessException

storeVersionTextDiff

public void storeVersionTextDiff(FileNode ndFile,
                                 long fileKey,
                                 long versionID,
                                 TextDiff file)
                          throws FileAccessException
FileAccessException

getNewProjectFromModel

public ProjectNode getNewProjectFromModel()
                                   throws FileAccessException
Subclasses should implement this to return a new ProjectNode object. Unique ID for new project will be already be set in returned Node.

FileAccessException

getNewFileNodeFromModel

public FileNode getNewFileNodeFromModel()
                                 throws FileAccessException
Subclasses should implement this to return a new FileNode object. Unique Id for file will already be set in returned Node.

FileAccessException

getNextVersionNodeID

public long getNextVersionNodeID()
                          throws FileAccessException
Returns next unique ID for a version.

FileAccessException

getNewLabelInfoFromModel

public LabelInfo getNewLabelInfoFromModel()
                                   throws FileAccessException
FileAccessException

storeVersionComment

public void storeVersionComment(FileNode ndFile,
                                long fileKey,
                                long versionID,
                                java.lang.String comment)
                         throws FileAccessException,
                                SecurityException
FileAccessException
SecurityException

retrieveVersionComment

public java.lang.String retrieveVersionComment(long versionID)
                                        throws FileAccessException
FileAccessException

retrieveVersionFull

public byte[] retrieveVersionFull(org.sourcejammer.project.view.NodeInfo versionNode)
                           throws FileAccessException,
                                  WrongFileTypeException
FileAccessException
WrongFileTypeException

getSourceFilePointer

public java.io.File getSourceFilePointer(org.sourcejammer.project.view.NodeInfo versionNode)

retrieveVersionTextLineReader

public TextLineReader retrieveVersionTextLineReader(org.sourcejammer.project.view.NodeInfo versionNode)
                                             throws FileAccessException,
                                                    WrongFileTypeException,
                                                    org.sourcejammer.util.SourceJammerVersionException
When implemented, this method returns the full source of the specified VersionNode as a TextLineReader. This method should only be called for files stored as Text. Implementing classes should throw WrongFileType if the underlying file is not text.

FileAccessException
WrongFileTypeException
org.sourcejammer.util.SourceJammerVersionException

retrieveVersionDelta

public Delta retrieveVersionDelta(org.sourcejammer.project.view.NodeInfo versionNode)
                           throws FileAccessException,
                                  WrongFileTypeException
FileAccessException
WrongFileTypeException

retrieveVersionTextDelta

public Delta retrieveVersionTextDelta(org.sourcejammer.project.view.NodeInfo versionNode)
                               throws FileAccessException,
                                      WrongFileTypeException
FileAccessException
WrongFileTypeException

retrieveLabel

public Label retrieveLabel(LabelInfo labelInfo)
                    throws FileAccessException
FileAccessException

retrieveVersionDeltaFile

public java.io.File retrieveVersionDeltaFile(org.sourcejammer.project.view.NodeInfo versionNode)
                                      throws FileAccessException,
                                             WrongFileTypeException
FileAccessException
WrongFileTypeException

lockNode

public long lockNode(ControllerNode nd)
              throws SecurityException
Locks the node and returns the key. Times out after default number of milliseconds.

SecurityException

lockNode

public long lockNode(ControllerNode nd,
                     long lTimeOutValue)
              throws SecurityException
Locks the node and returns the key used to lock it. Calling routines MUST remember to UNLOCK the node when they are done with it. Method waits for node to unlock for lTimeOutValue milliseconds.

SecurityException

retrieveLabelList

public org.sourcejammer.project.NodeList retrieveLabelList()
                                                    throws FileAccessException
Loads all the labels for this archive as a NodeList.

FileAccessException

deleteNode

public void deleteNode(ControllerNode node)
                throws FileAccessException,
                       org.sourcejammer.project.NodeDoesNotExistException,
                       SecurityException
FileAccessException
org.sourcejammer.project.NodeDoesNotExistException
SecurityException

getProjectChildName

public java.lang.String getProjectChildName(ProjectChild child)
                                     throws FileAccessException,
                                            org.sourcejammer.project.NodeDoesNotExistException
Low impact way of getting a node's name without adding the node or any of it's children to the cache.

FileAccessException
org.sourcejammer.project.NodeDoesNotExistException

removeVersion

public void removeVersion(FileNode ndFile,
                          long fileKey,
                          long versionID)
                   throws FileAccessException,
                          NoSuchVersionException
Remove all files assocaited with version from model.

FileAccessException
NoSuchVersionException


Copyright 2003 Soucejammer project.