org.nuiton.wikitty.services
Class WikittyServiceTransaction

java.lang.Object
  extended by org.nuiton.wikitty.services.WikittyServiceTransaction
All Implemented Interfaces:
WikittyService

public class WikittyServiceTransaction
extends Object
implements WikittyService

Version:
$Revision: 1259 $ Last update: $Date: 2011-12-28 19:50:45 +0100 (mer, 28 déc 2011) $ by : $Author: bpoussin $
Author:
poussin

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuiton.wikitty.WikittyService
WikittyService.ServiceListenerType
 
Field Summary
protected  int autoCommit
          if autoCommit > 0 all time events numbers element equals to this autoCommit commit is call
protected  List<WikittyEvent> events
           
protected  WikittyService tx
          WikittyService used to store modified object
protected  WikittyService ws
          Real WikittyService
 
Constructor Summary
WikittyServiceTransaction(org.nuiton.util.ApplicationConfig config, WikittyService ws)
           
 
Method Summary
protected  void addEvent(String securityToken, WikittyEvent e)
           
 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.
 WikittyEvent clear(String securityToken)
          Use with caution : It will delete ALL indexes from search engine !
 void commit(String securityToken)
           
 void commit(String securityToken, boolean force)
           
 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 treeNodeId)
          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)
          Looking for Wikitty that match criteria.
 List<WikittyQueryResult<String>> findAllByQuery(String securityToken, List<WikittyQuery> queries)
          Looking for Wikitty that match criteria.
 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.
 int getAutoCommit()
           
 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)
          Question: est un comportement normale, lorsqu'on se delogue depuis une transaction, on est deloguer partout ?
 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
 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.
 void rollback(String securityToken)
           
 void setAutoCommit(int autoCommit)
           
 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)
          Synchronise search engine with wikitty storage engine, i.e. clear and reindex all wikitties.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ws

protected WikittyService ws
Real WikittyService


tx

protected WikittyService tx
WikittyService used to store modified object


events

protected List<WikittyEvent> events

autoCommit

protected int autoCommit
if autoCommit > 0 all time events numbers element equals to this autoCommit commit is call

Constructor Detail

WikittyServiceTransaction

public WikittyServiceTransaction(org.nuiton.util.ApplicationConfig config,
                                 WikittyService ws)
Method Detail

setAutoCommit

public void setAutoCommit(int autoCommit)

getAutoCommit

public int getAutoCommit()

addEvent

protected void addEvent(String securityToken,
                        WikittyEvent e)

commit

public void commit(String securityToken)

commit

public void commit(String securityToken,
                   boolean force)

rollback

public void rollback(String securityToken)

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)
Question: est un comportement normale, lorsqu'on se delogue depuis une transaction, on est deloguer partout ? je pense que oui

Specified by:
logout in interface WikittyService
Parameters:
securityToken -

clear

public WikittyEvent clear(String securityToken)
Description copied from interface: WikittyService
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

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)

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 ?)

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

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

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

delete

public WikittyEvent delete(String securityToken,
                           Collection<String> ids)
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

findAllByCriteria

public List<PagedResult<String>> findAllByCriteria(String securityToken,
                                                   List<Criteria> criteria)
Description copied from interface: WikittyService
Looking for Wikitty that match criteria. More than one criteria can be passed in parametre, for each criteria in parametre there is a PagedResult associated with the same index.

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

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:

  • findAllByQuery

    public List<WikittyQueryResult<String>> findAllByQuery(String securityToken,
                                                           List<WikittyQuery> queries)
    Description copied from interface: WikittyService
    Looking for Wikitty that match criteria. More than one criteria can be passed in parametre, for each query in parametre there is a WikittyQueryResult associated with the same index.

    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

    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:

  • deleteTree

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

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

    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)
    Description copied from interface: WikittyService
    Synchronise search engine with wikitty storage engine, i.e. clear and reindex all wikitties.

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

    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.