org.wso2.registry.inmemory
Class InMemoryRegistry

java.lang.Object
  extended by org.wso2.registry.inmemory.InMemoryRegistry
All Implemented Interfaces:
Registry

public class InMemoryRegistry
extends java.lang.Object
implements Registry

In memory implementation of the resourceMap. This implementation stores all the resource content and the metadata in the memory as Maps and Lists. Main use case of this implementation is as a cache for a persistance resourceMap.


Field Summary
protected static org.apache.commons.logging.Log log
           
 
Constructor Summary
InMemoryRegistry()
           
 
Method Summary
 void addComment(java.lang.String resourcePath, Comment comment)
          Adds a comment to a resource.
 void applyTag(java.lang.String resourcePath, java.lang.String tag)
          Applies the given tag to the resource in the given path.
 void delete(java.lang.String path)
          Deletes a resource from the resourceMap.
 Artifact executeQuery(java.lang.String path, java.lang.Object[] parameters)
          Executes a custom query defined by users.
 Artifact get(java.lang.String path)
          Returns the resource in the given path.
 float getAverageRating(java.lang.String resourcePath)
          Returns the avarage rating for the given resource.
 Comment[] getComments(java.lang.String resourcePath)
          Retruns all comments for the given resource.
 LogEntry[] getLogs(java.lang.String resourcePath, java.lang.String userName, java.util.Date from, java.util.Date to)
          Returns the logs of the activities occured in the registy.
 int getRating(java.lang.String path, java.lang.String userName)
          Returns the rating given to the specified resource by the given user
 TaggedResourcePath[] getResourcePathsWithTag(java.lang.String tag)
          Returns the paths of the resources, which are tagged using the given tag.
 Tag[] getTags(java.lang.String resourcePath)
          Returns all tags used for tagging the given resource.
 java.lang.String[] getVersions(java.lang.String path)
          Returns the paths of the versions of the resource located at the given path.
 boolean isResourceAvailable(java.lang.String path)
           
 void put(java.lang.String path, Artifact artifact)
          Creates and updates resources (directories, repositories, content resourcess)
 void rateResource(java.lang.String resourcePath, int rating)
          Rates the given resource.
 boolean resourceExists(java.lang.String path)
          Check whether a resource exist in the given path
 void restoreVersion(java.lang.String versionPath)
          Reverts a resource to a given version.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.commons.logging.Log log
Constructor Detail

InMemoryRegistry

public InMemoryRegistry()
Method Detail

get

public Artifact get(java.lang.String path)
             throws RegistryException
Description copied from interface: Registry
Returns the resource in the given path.

Specified by:
get in interface Registry
Parameters:
path - Path of the resource. e.g. /project1/server/deployment.xml
Returns:
Resource instance
Throws:
RegistryException - is thrown if the resource is not in the registry

resourceExists

public boolean resourceExists(java.lang.String path)
                       throws RegistryException
Description copied from interface: Registry
Check whether a resource exist in the given path

Specified by:
resourceExists in interface Registry
Parameters:
path - Path of the resource to be checked
Returns:
true if a resource exist in the given path, false otherwise.
Throws:
RegistryException - if an error occurs

put

public void put(java.lang.String path,
                Artifact artifact)
         throws RegistryException
Creates and updates resources (directories, repositories, content resourcess)

Specified by:
put in interface Registry
Parameters:
path - Path of the resource. e.g. foo/bar/myresource. In this case Directories foo and foo/bar should exists in the resourceMap. If they do not exists they will be created.
artifact - Resource to be placed in the given path. It can be a normal resource (resource containing content), a general directory or a special directory (e.g. synapse repository)
Throws:
RegistryException - is thrown if the storage exception is encountered.

delete

public void delete(java.lang.String path)
            throws RegistryException
Deletes a resource from the resourceMap. If the resource is a normal resource, or a link only the resource will be removed. If it is directory, all descendent resources of that directory will be removed.

NOTE: We are not removing links, if a resource is deleted. It will result in run time exception when a link is accessed. But it is better than removing links, which may have created by some other user. Then the user who is using the link can know the exact reason for the invalid link, than going in to some strange error because his link is deleted without his knowledge.

Specified by:
delete in interface Registry
Parameters:
path - Path of the resource to be deleted.
Throws:
RegistryException - is thrown depending on the implementation.

getVersions

public java.lang.String[] getVersions(java.lang.String path)
                               throws RegistryException
Description copied from interface: Registry
Returns the paths of the versions of the resource located at the given path. Version paths are returned in the form /projects/myresource?v=12

Specified by:
getVersions in interface Registry
Parameters:
path - Path of a current version of a resource
Returns:
Paths of versions
Throws:
RegistryException

restoreVersion

public void restoreVersion(java.lang.String versionPath)
                    throws RegistryException
Description copied from interface: Registry
Reverts a resource to a given version.

Specified by:
restoreVersion in interface Registry
Parameters:
versionPath - path of the version to be reverted. It is not necessary to provide the path of the resource as it can be derived from the version path.
Throws:
RegistryException

applyTag

public void applyTag(java.lang.String resourcePath,
                     java.lang.String tag)
              throws RegistryException
Description copied from interface: Registry
Applies the given tag to the resource in the given path. If the given tag is not defined in the registry, it will be defined.

Specified by:
applyTag in interface Registry
Parameters:
resourcePath - Path of the resource to be tagged.
tag - Tag. Any string can be used for the tag.
Throws:
RegistryException - is thrown if a resource does not exist in the given path.

getResourcePathsWithTag

public TaggedResourcePath[] getResourcePathsWithTag(java.lang.String tag)
                                             throws RegistryException
Description copied from interface: Registry
Returns the paths of the resources, which are tagged using the given tag.

Specified by:
getResourcePathsWithTag in interface Registry
Parameters:
tag - Tag
Returns:
Resource paths
Throws:
RegistryException - if an error occurs

getTags

public Tag[] getTags(java.lang.String resourcePath)
              throws RegistryException
Description copied from interface: Registry
Returns all tags used for tagging the given resource.

Specified by:
getTags in interface Registry
Parameters:
resourcePath - Path of the resource
Returns:
Tags tag names
Throws:
RegistryException - is thrown if a resource does not exist in the given path.

addComment

public void addComment(java.lang.String resourcePath,
                       Comment comment)
                throws RegistryException
Description copied from interface: Registry
Adds a comment to a resource.

Specified by:
addComment in interface Registry
Parameters:
resourcePath - Path of the resource to add the comment.
comment - Comment instance for the new comment.
Throws:
RegistryException - is thrown if a resource does not exist in the given path.

getComments

public Comment[] getComments(java.lang.String resourcePath)
                      throws RegistryException
Description copied from interface: Registry
Retruns all comments for the given resource.

Specified by:
getComments in interface Registry
Parameters:
resourcePath - Path of the resource.
Returns:
Array of Comment objects.
Throws:
RegistryException - if an error occurs

rateResource

public void rateResource(java.lang.String resourcePath,
                         int rating)
                  throws RegistryException
Description copied from interface: Registry
Rates the given resource.

Specified by:
rateResource in interface Registry
Parameters:
resourcePath - Path of the resource.
rating - rating value between 1 and 5.
Throws:
RegistryException - is thrown if a resource does not exist in the given path.

getAverageRating

public float getAverageRating(java.lang.String resourcePath)
                       throws RegistryException
Description copied from interface: Registry
Returns the avarage rating for the given resource. This is the average of all ratings done by all users for the given resource.

Specified by:
getAverageRating in interface Registry
Parameters:
resourcePath - Path of the resource.
Returns:
Average rating between 1 and 5.
Throws:
RegistryException - if an error occurs

getRating

public int getRating(java.lang.String path,
                     java.lang.String userName)
              throws RegistryException
Description copied from interface: Registry
Returns the rating given to the specified resource by the given user

Specified by:
getRating in interface Registry
Parameters:
path - Path of the resource
userName - username of the user
Returns:
rating given by the given user
Throws:
RegistryException

executeQuery

public Artifact executeQuery(java.lang.String path,
                             java.lang.Object[] parameters)
                      throws RegistryException
Description copied from interface: Registry
Executes a custom query defined by users. Returned RowSet contains fields of tables specified by the custom query.

Specified by:
executeQuery in interface Registry
Parameters:
path - Path of the query to execute.
parameters - Query parameters.
Returns:
RowSet containing the fields specified in the query.
Throws:
RegistryException - depends on the implementation.

isResourceAvailable

public boolean isResourceAvailable(java.lang.String path)

getLogs

public LogEntry[] getLogs(java.lang.String resourcePath,
                          java.lang.String userName,
                          java.util.Date from,
                          java.util.Date to)
                   throws RegistryException
Description copied from interface: Registry
Returns the logs of the activities occured in the registy.

Specified by:
getLogs in interface Registry
Parameters:
resourcePath - If given, only the logs related to the resource path is returned. If null, logs for all resources will be returned.
userName - If given, only the logs for activities done by the given user will be returned. If null, logs for all users will be returned.
from - If given, logs for activities occured after the given date will be returned. If null, there will not be a bound for the starting date.
to - If given, logs for activities occured before the given date will be returned. If null, there will not be a bound for the ending date.
Returns:
Array of LogEntry objects representing the logs
Throws:
RegistryException


Copyright © 2007 Apache Web Services Project. All Rights Reserved.