org.nuiton.wikitty.services
Class WikittyServiceStorage

java.lang.Object
  extended by org.nuiton.wikitty.services.WikittyServiceStorage
All Implemented Interfaces:
WikittyService
Direct Known Subclasses:
WikittyServiceInMemory

public class WikittyServiceStorage
extends Object
implements WikittyService

WikittyService is main service

Version:
$Revision: 1391 $ Last update: $Date: 2012-01-30 18:05:29 +0100 (lun, 30 jan 2012) $ by : $Author: bpoussin $
Author:
poussin

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuiton.wikitty.WikittyService
WikittyService.ServiceListenerType
 
Field Summary
protected  org.nuiton.util.ApplicationConfig config
           
protected  WikittyExtensionMigration defaultExtensionMigration
          Default migration use to migrate a wikitty in last extension version
protected  WikittyExtensionStorage extensionStorage
           
protected  WikittySearchEngine searchEngine
           
protected  WikittyStorage wikittyStorage
           
 
Constructor Summary
protected WikittyServiceStorage(org.nuiton.util.ApplicationConfig config)
          TODO poussin 20101027 remove it when all used WikittyServiceHelper.build Used by specific child org.nuiton.wikitty.storage.solr.WikittyServiceSolr
  WikittyServiceStorage(org.nuiton.util.ApplicationConfig config, WikittyExtensionStorage extensionStorage, WikittyStorage wikittyStorage, WikittySearchEngine searchEngine)
           
 
Method Summary
 void addWikittyServiceListener(WikittyListener listener, WikittyService.ServiceListenerType type)
          Add new wikitty service listener.
 boolean canDelete(String securityToken, String wikittyId)
          Verifie que l'utilisateur associe au securityToken peut supprimer le wikitty dont on passe l'identifiant.
 boolean canRead(String securityToken, String wikittyId)
          Un utilisateur peu lire un objet, s'il est Reader ou a defaut: - owner - AppAdmin - Admin - Writer
 boolean canWrite(String securityToken, Wikitty wikitty)
          Verifie si l'utilisateur lie au securityToken a le droit d'ecrire le Wikitty passe en argument.
protected  void checkConstraint(Collection<Wikitty> wikitties)
           
protected  void checkExtension(Collection<WikittyExtension> exts)
          Check some constraint on extension extension name (ex: '#--AAA' is invalide name) extension version (ex: '-1.0' is invalide version) extension field name (ex: '=na' is invalide name)
 WikittyEvent clear(String securityToken)
          Use with caution : It will delete ALL indexes from search engine !
 WikittyEvent delete(String securityToken, Collection<String> ids)
          Delete all object if id exists.
 WikittyEvent deleteExtension(String securityToken, Collection<String> extNames)
          Delete all extension if id exists and no wikitty used this extension.
 WikittyEvent deleteTree(String securityToken, String thesaurusId)
          Delete specified tree node and all sub nodes.
 boolean exists(String securityToken, String wikittyId)
          true if wikitty with id exists, even wikitty is deleted
 List<PagedResult<String>> findAllByCriteria(String securityToken, List<Criteria> criteria)
          Assume that this PagedResult contains wikitty id as result and return new PagedResult with Wikitty instance
 List<WikittyQueryResult<String>> findAllByQuery(String securityToken, List<WikittyQuery> queries)
          Assume that this PagedResult contains wikitty id as result and return new PagedResult with Wikitty instance
 List<String> findByCriteria(String securityToken, List<Criteria> criteria)
          First lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null. for each criteria in parametre there is a result associated with the same index.
 List<String> findByQuery(String securityToken, List<WikittyQuery> queries)
          First lonely (or first one) wikitty object that match query, if no wikitty found or first retrived is not authorized for the user return null. for each query in parametre there is a result associated with the same index.
 TreeNodeResult<String> findTreeNode(String securityToken, String wikittyId, int depth, boolean count, Criteria filter)
          Retrieve all node from wikittyId, this node is returned too.
 WikittyQueryResultTreeNode<String> findTreeNode(String securityToken, String wikittyId, int depth, boolean count, WikittyQuery filter)
          Retrieve all node from wikittyId, this node is returned too.
 List<String> getAllExtensionIds(String securityToken)
          Return all extension id (ex: "extName[version])").
 List<String> getAllExtensionsRequires(String securityToken, String extensionName)
          Return all extension id (ex: "extName[version])") where extensionName is required.
 WikittyExtensionStorage getExtensionStorage()
           
protected  List<String> getRecursiveTreeNodeId(String securityToken, String treeNodeId)
          Get recursive id of tree node children of treeNodeId.
 WikittySearchEngine getSearchEngine()
           
 WikittyStorage getWikittyStorage()
           
 boolean isDeleted(String securityToken, String wikittyId)
          true if wikitty is deleted, throw an exception if id don't exist
 String login(String login, String password)
          Authenticate someone on WikittyService. securityToken returned must be used to call others methods
 void logout(String securityToken)
          Unanthenticate someone by disabled securityToken
 void removeWikittyServiceListener(WikittyListener listener, WikittyService.ServiceListenerType type)
          Remove wikitty service listener.
 WikittyEvent replay(String securityToken, List<WikittyEvent> events, boolean force)
          Replay all events in argument on this WikittyService
 List<Wikitty> restore(String securityToken, List<String> ids)
          Restore wikitty
protected  Wikitty restore(String securityToken, String id)
          restore one wikitty
 WikittyExtension restoreExtension(String securityToken, String extensionId)
          Load extension from id.
 List<WikittyExtension> restoreExtensionAndDependenciesLastVesion(String securityToken, Collection<String> extensionNames)
          Search extension with name in last version.
 WikittyExtension restoreExtensionLastVersion(String securityToken, String name)
          Search extension with name in last version.
 Wikitty restoreVersion(String securityToken, String wikittyId, String version)
          Restore wikitty in specifique version.
 WikittyEvent store(String securityToken, Collection<Wikitty> wikitties, boolean force)
          Manage Update and creation.
 WikittyEvent storeExtension(String securityToken, Collection<WikittyExtension> exts)
          Manage Update and creation
 void syncSearchEngine(String securityToken)
          This method do some commit during execution.
protected  Wikitty upgradeData(String securityToken, Wikitty wikitty)
          Upgrade wikitty but not saved it.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultExtensionMigration

protected WikittyExtensionMigration defaultExtensionMigration
Default migration use to migrate a wikitty in last extension version


config

protected org.nuiton.util.ApplicationConfig config

searchEngine

protected WikittySearchEngine searchEngine

extensionStorage

protected WikittyExtensionStorage extensionStorage

wikittyStorage

protected WikittyStorage wikittyStorage
Constructor Detail

WikittyServiceStorage

protected WikittyServiceStorage(org.nuiton.util.ApplicationConfig config)
TODO poussin 20101027 remove it when all used WikittyServiceHelper.build Used by specific child org.nuiton.wikitty.storage.solr.WikittyServiceSolr


WikittyServiceStorage

public WikittyServiceStorage(org.nuiton.util.ApplicationConfig config,
                             WikittyExtensionStorage extensionStorage,
                             WikittyStorage wikittyStorage,
                             WikittySearchEngine searchEngine)
Method Detail

getSearchEngine

public WikittySearchEngine getSearchEngine()

getExtensionStorage

public WikittyExtensionStorage getExtensionStorage()

getWikittyStorage

public WikittyStorage getWikittyStorage()

addWikittyServiceListener

public void addWikittyServiceListener(WikittyListener listener,
                                      WikittyService.ServiceListenerType type)
Description copied from interface: WikittyService
Add new wikitty service listener. Warning, listener is referenced as WeakReference, but sure to another reference to work.

Specified by:
addWikittyServiceListener in interface WikittyService
Parameters:
listener - listener to add
type - type of event to listen
See Also:
WikittyService.ServiceListenerType

removeWikittyServiceListener

public void removeWikittyServiceListener(WikittyListener listener,
                                         WikittyService.ServiceListenerType type)
Description copied from interface: WikittyService
Remove wikitty service listener. Warning, listener is referenced as WeakReference, but sure to another reference to work.

Specified by:
removeWikittyServiceListener in interface WikittyService
Parameters:
listener - listener to remove
type - type of event to listen
See Also:
WikittyService.ServiceListenerType

login

public String login(String login,
                    String password)
Description copied from interface: WikittyService
Authenticate someone on WikittyService. securityToken returned must be used to call others methods

Specified by:
login in interface WikittyService
Parameters:
login - can be application specifique login, but best practice is to use email user
Returns:
return token securityToken

logout

public void logout(String securityToken)
Description copied from interface: WikittyService
Unanthenticate someone by disabled securityToken

Specified by:
logout in interface WikittyService
Parameters:
securityToken - security token previously returned by login. If securityToken is not valid, this method do nothing

canWrite

public boolean canWrite(String securityToken,
                        Wikitty wikitty)
Description copied from interface: WikittyService
Verifie si l'utilisateur lie au securityToken a le droit d'ecrire le Wikitty passe en argument. On ne peut pas passer seulement l'id du wikitty en parametre car de nouvelles extensions ont peut lui etre ajouter depuis la derniere sauvegarde

Specified by:
canWrite in interface WikittyService
Parameters:
securityToken - le token de securite qui permet de retrouver l'utilisateur et ainsi verifier les droits
wikitty - le wikitty a sauver
Returns:
vrai si l'utilisateur peut sauver l'objet

canDelete

public boolean canDelete(String securityToken,
                         String wikittyId)
Description copied from interface: WikittyService
Verifie que l'utilisateur associe au securityToken peut supprimer le wikitty dont on passe l'identifiant. Seul le propriƩtaire de l'objet ou un admin peut supprimer un objet. Si l'id de l'objet est invalide, la methode retourne true, car la suppression d'un id invalide ne fait rien

Specified by:
canDelete in interface WikittyService
Parameters:
securityToken - security token
wikittyId - wikitty id
Returns:
vrai le la suppression ne posera pas de probleme.

canRead

public boolean canRead(String securityToken,
                       String wikittyId)
Description copied from interface: WikittyService
Un utilisateur peu lire un objet, s'il est Reader ou a defaut: - owner - AppAdmin - Admin - Writer

Specified by:
canRead in interface WikittyService
Parameters:
securityToken - security token
wikittyId - wikitty id
Returns:
vrai si l'utilisateur peut lire l'obbjet. Si l'id est invalide alors on retourne false (l'utilisateur ne peut pas lire un objet qui n'existe pas)

checkConstraint

protected void checkConstraint(Collection<Wikitty> wikitties)

store

public WikittyEvent store(String securityToken,
                          Collection<Wikitty> wikitties,
                          boolean force)
Description copied from interface: WikittyService
Manage Update and creation.

Specified by:
store in interface WikittyService
Parameters:
securityToken - security token
wikitties - list of wikitty to be persisted
force - boolean force non version version increment on saved wikitty or force version on wikitty creation (version 0.0)
Returns:
update response

getAllExtensionIds

public List<String> getAllExtensionIds(String securityToken)
Description copied from interface: WikittyService
Return all extension id (ex: "extName[version])").

Specified by:
getAllExtensionIds in interface WikittyService
Parameters:
securityToken - security token
Returns:
extension ids list

getAllExtensionsRequires

public List<String> getAllExtensionsRequires(String securityToken,
                                             String extensionName)
Description copied from interface: WikittyService
Return all extension id (ex: "extName[version])") where extensionName is required.

Specified by:
getAllExtensionsRequires in interface WikittyService
Parameters:
securityToken - security token
extensionName - extension name
Returns:
extension id list

checkExtension

protected void checkExtension(Collection<WikittyExtension> exts)
Check some constraint on extension
  • extension name (ex: '#--AAA' is invalide name)
  • extension version (ex: '-1.0' is invalide version)
  • extension field name (ex: '=na' is invalide name)

    Parameters:
    exts - extentions
    See Also:
    WikittyUtil.extensionNamePattern, WikittyUtil.extensionFieldNamePattern

  • storeExtension

    public WikittyEvent storeExtension(String securityToken,
                                       Collection<WikittyExtension> exts)
    Description copied from interface: WikittyService
    Manage Update and creation

    Specified by:
    storeExtension in interface WikittyService
    Parameters:
    securityToken - security token
    exts - list of wikitty extension to be persisted
    Returns:
    update response

    deleteExtension

    public WikittyEvent deleteExtension(String securityToken,
                                        Collection<String> extNames)
    Description copied from interface: WikittyService
    Delete all extension if id exists and no wikitty used this extension. extension name must be just the name (extName)

    Specified by:
    deleteExtension in interface WikittyService
    Parameters:
    securityToken - security token
    extNames - extension's names to remove

    restoreExtension

    public WikittyExtension restoreExtension(String securityToken,
                                             String extensionId)
    Description copied from interface: WikittyService
    Load extension from id. Id is 'name[version]'.

    Specified by:
    restoreExtension in interface WikittyService
    Parameters:
    securityToken - security token
    Returns:
    the corresponding object, exception if no such object found.

    restoreExtensionLastVersion

    public WikittyExtension restoreExtensionLastVersion(String securityToken,
                                                        String name)
    Description copied from interface: WikittyService
    Search extension with name in last version.

    Specified by:
    restoreExtensionLastVersion in interface WikittyService
    Parameters:
    securityToken - security token
    name - extension name
    Returns:
    the corresponding object, exception if no such object found.

    restoreExtensionAndDependenciesLastVesion

    public List<WikittyExtension> restoreExtensionAndDependenciesLastVesion(String securityToken,
                                                                            Collection<String> extensionNames)
    Description copied from interface: WikittyService
    Search extension with name in last version.

    Specified by:
    restoreExtensionAndDependenciesLastVesion in interface WikittyService
    extensionNames - extension name
    Returns:
    extension wanted with dependencies extensions at head of list

    restore

    protected Wikitty restore(String securityToken,
                              String id)
    restore one wikitty

    Parameters:
    securityToken - security token previously returned by login. If securityToken is not valid, this method do nothing
    id - to restore
    Returns:
    wikitty found

    restore

    public List<Wikitty> restore(String securityToken,
                                 List<String> ids)
    Description copied from interface: WikittyService
    Restore wikitty

    Specified by:
    restore in interface WikittyService
    Parameters:
    securityToken - security token
    ids - list of wikitty ids to restore
    Returns:
    list of corresponding wikitty, if one id is not valid (no object or deleted or no authorisation) this id return null and result list can have null elements

    upgradeData

    protected Wikitty upgradeData(String securityToken,
                                  Wikitty wikitty)
    Upgrade wikitty but not saved it.

    Parameters:
    securityToken - security token previously returned by login. If securityToken is not valid, this method do nothing
    wikitty - to upgrade
    Returns:
    wikitty upgraded

    delete

    public WikittyEvent delete(String securityToken,
                               Collection<String> ids)
                        throws WikittyException
    Description copied from interface: WikittyService
    Delete all object if id exists.

    Specified by:
    delete in interface WikittyService
    Parameters:
    securityToken - security token
    ids - object's ids to remove
    Throws:
    WikittyException

    clear

    public WikittyEvent clear(String securityToken)
    Use with caution : It will delete ALL indexes from search engine ! This operation should be disabled in production environment.

    Specified by:
    clear in interface WikittyService
    Parameters:
    securityToken - security token

    findAllByCriteria

    public List<PagedResult<String>> findAllByCriteria(String securityToken,
                                                       List<Criteria> criteria)
    Assume that this PagedResult contains wikitty id as result and return new PagedResult with Wikitty instance

    Specified by:
    findAllByCriteria in interface WikittyService
    Parameters:
    securityToken - security token
    Returns:

    findByCriteria

    public List<String> findByCriteria(String securityToken,
                                       List<Criteria> criteria)
    Description copied from interface: WikittyService
    First lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null. for each criteria in parametre there is a result associated with the same index.

    Specified by:
    findByCriteria in interface WikittyService
    Parameters:
    securityToken - security token
    Returns:
    wikitty id object or null

    findAllByQuery

    public List<WikittyQueryResult<String>> findAllByQuery(String securityToken,
                                                           List<WikittyQuery> queries)
    Assume that this PagedResult contains wikitty id as result and return new PagedResult with Wikitty instance

    Specified by:
    findAllByQuery in interface WikittyService
    Parameters:
    securityToken - security token
    Returns:

    findByQuery

    public List<String> findByQuery(String securityToken,
                                    List<WikittyQuery> queries)
    Description copied from interface: WikittyService
    First lonely (or first one) wikitty object that match query, if no wikitty found or first retrived is not authorized for the user return null. for each query in parametre there is a result associated with the same index.

    Specified by:
    findByQuery in interface WikittyService
    Parameters:
    securityToken - security token
    Returns:
    wikitty id object or null

    deleteTree

    public WikittyEvent deleteTree(String securityToken,
                                   String thesaurusId)
    Description copied from interface: WikittyService
    Delete specified tree node and all sub nodes.

    Specified by:
    deleteTree in interface WikittyService
    Parameters:
    securityToken - security token
    thesaurusId - tree node id to delete
    Returns:
    delete wikitty ids

    getRecursiveTreeNodeId

    protected List<String> getRecursiveTreeNodeId(String securityToken,
                                                  String treeNodeId)
    Get recursive id of tree node children of treeNodeId.

    Parameters:
    securityToken - security token
    treeNodeId - tree node id
    Returns:
    all id of treeNodeId's children

    findTreeNode

    public TreeNodeResult<String> findTreeNode(String securityToken,
                                               String wikittyId,
                                               int depth,
                                               boolean count,
                                               Criteria filter)
    Description copied from interface: WikittyService
    Retrieve all node from wikittyId, this node is returned too. Returned wikitty must include the 'WikittyTreeNode' extension. depth ask the recursively level:
  • 0 return only wikittyId passed in argument
  • 1 return wikittyId passed in argument, and his children
  • ...
  • negative value return all node if count is true, integer in return map is number of attachment in subtree (recursively). If filter is not null only attachments that satisfy filter are counted. if count is false, all integer are fixed to 0

    Specified by:
    findTreeNode in interface WikittyService
    Parameters:
    securityToken - security token
    wikittyId - root node to begin
    depth - depth of node returned
    count - if true return count of attachment
    filter - filter on attachment count
    Returns:

  • findTreeNode

    public WikittyQueryResultTreeNode<String> findTreeNode(String securityToken,
                                                           String wikittyId,
                                                           int depth,
                                                           boolean count,
                                                           WikittyQuery filter)
    Description copied from interface: WikittyService
    Retrieve all node from wikittyId, this node is returned too. Returned wikitty must include the 'WikittyTreeNode' extension. depth ask the recursively level:
  • 0 return only wikittyId passed in argument
  • 1 return wikittyId passed in argument, and his children
  • ...
  • negative value return all node if count is true, integer in return map is number of attachment in subtree (recursively). If filter is not null only attachments that satisfy filter are counted. if count is false, all integer are fixed to 0

    Specified by:
    findTreeNode in interface WikittyService
    Parameters:
    securityToken - security token
    wikittyId - root node to begin
    depth - depth of node returned
    count - if true return count of attachment
    filter - filter on attachment count
    Returns:

  • restoreVersion

    public Wikitty restoreVersion(String securityToken,
                                  String wikittyId,
                                  String version)
    Description copied from interface: WikittyService
    Restore wikitty in specifique version. Authorisation is checked on last version even for previous wikitty version

    Specified by:
    restoreVersion in interface WikittyService
    Parameters:
    securityToken - security token

    syncSearchEngine

    public void syncSearchEngine(String securityToken)
    This method do some commit during execution. Transaction must be not started when we call it.

    Specified by:
    syncSearchEngine in interface WikittyService
    Parameters:
    securityToken - security token previously returned by login. If securityToken is not valid, this method do nothing

    replay

    public WikittyEvent replay(String securityToken,
                               List<WikittyEvent> events,
                               boolean force)
    Description copied from interface: WikittyService
    Replay all events in argument on this WikittyService

    Specified by:
    replay in interface WikittyService
    Parameters:
    securityToken - security token
    events - event to replay
    force - for to not change wikitty version (use version in wikitty present in event)
    Returns:
    new event that represent all event passed in argument. if arguement have: store, store, delete, clear, store. Return event resume all by only one clear + store, because all action before clear is not necessary. Similarly for store + delete for the same object. (note: perhaps this broke history, when history are implanted and two serveur must have same history ?)

    exists

    public boolean exists(String securityToken,
                          String wikittyId)
    Description copied from interface: WikittyService
    true if wikitty with id exists, even wikitty is deleted

    Specified by:
    exists in interface WikittyService

    isDeleted

    public boolean isDeleted(String securityToken,
                             String wikittyId)
    Description copied from interface: WikittyService
    true if wikitty is deleted, throw an exception if id don't exist

    Specified by:
    isDeleted in interface WikittyService
    Returns:


    Copyright © 2009-2012 CodeLutin. All Rights Reserved.