org.nuiton.wikitty
Class WikittyServiceImpl

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

public class WikittyServiceImpl
extends java.lang.Object
implements WikittyService

WikittyService is main service

Version:
$Revision: 444 $ Last update: $Date: 2010-10-21 16:32:50 +0200 (jeu., 21 oct. 2010) $ by : $Author: bpoussin $
Author:
poussin

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuiton.wikitty.WikittyService
WikittyService.ServiceListenerType
 
Field Summary
protected  WikittyExtensionMigration defaultExtensionMigration
          Default migration use to migrate a wikitty in last extension version
protected  WikittyExtensionStorage extensionStorage
           
protected  WikittySearchEngin searchEngin
           
protected  WikittyStorage wikittyStorage
           
 
Constructor Summary
protected WikittyServiceImpl()
          Used by specific child org.nuiton.wikitty.jdbc.WikittyServiceJDBC org.nuiton.wikitty.jdbc.WikittyServiceJPA org.nuiton.wikitty.jdbc.WikittyServiceHbase
  WikittyServiceImpl(WikittyExtensionStorage extensionStorage, WikittyStorage wikittyStorage, WikittySearchEngin searchEngin)
           
 
Method Summary
 void addWikittyServiceListener(WikittyServiceListener listener, WikittyService.ServiceListenerType type)
          Add new wikitty service listener.
 boolean canDelete(java.lang.String securityToken, java.lang.String wikittyId)
          Verifie que l'utilisateur associe au securityToken peut supprimer le wikitty dont on passe l'identifiant.
 boolean canRead(java.lang.String securityToken, java.lang.String wikittyId)
          Un utilisateur peu lire un objet, s'il est Reader ou a defaut: - owner - AppAdmin - Admin - Writer
 boolean canWrite(java.lang.String securityToken, Wikitty wikitty)
          Verifie si l'utilisateur lie au securityToken a le droit d'ecrire le Wikitty passe en argument
protected  void checkConstraint(java.util.Collection<Wikitty> wikitties)
           
 void clear(java.lang.String securityToken)
          Use with caution : It will delete ALL indexes from search engine !
 void delete(java.lang.String securityToken, java.util.Collection<java.lang.String> ids)
          Delete all object if id exists.
 void delete(java.lang.String securityToken, java.lang.String id)
          Delete object if id exists.
protected  void delete(java.lang.String securityToken, WikittyTransaction transaction, java.util.Collection<java.lang.String> ids)
           
 java.util.List<java.lang.String> deleteTree(java.lang.String securityToken, java.lang.String thesaurusId)
          Delete specified tree node and all sub nodes.
 java.util.List<java.lang.String> deleteTree(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String treeNodeId)
          Delete specified treenode and sub treenode.
 PagedResult<java.lang.String> findAllByCriteria(java.lang.String securityToken, Criteria criteria)
           
 PagedResult<java.lang.String> findAllByCriteria(java.lang.String securityToken, WikittyTransaction transaction, Criteria criteria)
          Assume that this PagedResult contains wikitty id as result and return new PagedResult with Wikitty instance
 Wikitty findByCriteria(java.lang.String securityToken, Criteria criteria)
          Fist lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null
 Wikitty findByCriteria(java.lang.String securityToken, WikittyTransaction transaction, Criteria criteria)
          Fist lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null
 java.util.List<java.lang.String> getAllExtensionIds(java.lang.String securityToken)
          Return all extension id (ex: "extName[version])").
 java.util.List<java.lang.String> getAllExtensionsRequires(java.lang.String securityToken, java.lang.String extensionName)
          Return all extension id (ex: "extName[version])") where extensionName is required.
protected  WikittyExtensionStorage getExtensionStorage()
           
protected  java.util.List<java.lang.String> getRecursiveTreeNodeId(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String treeNodeId)
          Get recursive id of tree node children of treeNodeId.
protected  WikittySearchEngin getSearchEngin()
           
protected  WikittyStorage getWikittyStorage()
           
 java.lang.String login(java.lang.String login, java.lang.String password)
          Authenticate someone on WikittyService. securityToken returned must be used to call others methods
 void logout(java.lang.String securityToken)
          Unanthenticate someone by disabled securityToken
 void removeWikittyServiceListener(WikittyServiceListener listener, WikittyService.ServiceListenerType type)
          Remove wikitty service listener.
 java.util.List<Wikitty> restore(java.lang.String securityToken, java.util.List<java.lang.String> ids)
           
 Wikitty restore(java.lang.String securityToken, java.lang.String id)
           
 java.util.List<Wikitty> restore(java.lang.String securityToken, WikittyTransaction transaction, java.util.List<java.lang.String> ids)
          Restore wikitty using opened transaction.
protected  Wikitty restore(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String id)
           
 java.util.Map<WikittyTreeNode,java.lang.Integer> restoreChildren(java.lang.String securityToken, java.lang.String wikittyId, Criteria filter)
          Retrieve all wikitties children with count (no recursively) of an other one Wikitty reference by wikittyId MUST include the 'Node' extension
 WikittyExtension restoreExtension(java.lang.String securityToken, java.lang.String extensionId)
          Load extension from id.
 WikittyExtension restoreExtension(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String extensionId)
          Action is done in transaction passed in argument.
 WikittyExtension restoreExtensionLastVersion(java.lang.String securityToken, java.lang.String name)
          Search extension with name in last version.
 WikittyExtension restoreExtensionLastVersion(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String name)
          Search extension with name in last version.
 java.util.Map.Entry<WikittyTreeNode,java.lang.Integer> restoreNode(java.lang.String securityToken, java.lang.String wikittyId, Criteria filter)
          Retrieve wikitty node with count.
 WikittyTree restoreTree(java.lang.String securityToken, java.lang.String wikittyId)
          Retrieve all wikitties children (recursively) of an other one Wikitty reference by wikittyId MUST include the 'Node' extension
protected  WikittyTree restoreTree(java.lang.String securityToken, WikittyTransaction transaction, java.lang.String wikittyId)
           
 Wikitty restoreVersion(java.lang.String securityToken, java.lang.String wikittyId, java.lang.String version)
          Restore wikitty in specifique version.
 UpdateResponse store(java.lang.String securityToken, java.util.Collection<Wikitty> wikitties)
          Store and index wikitties object.
 UpdateResponse store(java.lang.String securityToken, java.util.Collection<Wikitty> wikitties, boolean force)
          Store and index wikitties object.
 UpdateResponse store(java.lang.String securityToken, Wikitty wikitty)
          Store and index wikitty object
 UpdateResponse store(java.lang.String securityToken, WikittyTransaction transaction, java.util.Collection<Wikitty> wikitties, boolean force)
          Manage Update and creation, action is done in transaction passed in argument.
 UpdateResponse storeExtension(java.lang.String securityToken, java.util.Collection<WikittyExtension> exts)
          Save several extension.
 UpdateResponse storeExtension(java.lang.String securityToken, WikittyExtension ext)
          Manage Update and creation.
 UpdateResponse storeExtension(java.lang.String securityToken, WikittyTransaction transaction, java.util.Collection<WikittyExtension> exts)
          Manage Update and creation, action is done in transaction passed in argument
 UpdateResponse syncEngin(java.lang.String securityToken)
          Synchronise search engine with wikitty storage engine, i.e. clear and reindex all wikitties.
protected  Wikitty upgradeData(java.lang.String securityToken, WikittyTransaction transaction, Wikitty wikitty)
           
 
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


searchEngin

protected WikittySearchEngin searchEngin

extensionStorage

protected WikittyExtensionStorage extensionStorage

wikittyStorage

protected WikittyStorage wikittyStorage
Constructor Detail

WikittyServiceImpl

protected WikittyServiceImpl()
Used by specific child org.nuiton.wikitty.jdbc.WikittyServiceJDBC org.nuiton.wikitty.jdbc.WikittyServiceJPA org.nuiton.wikitty.jdbc.WikittyServiceHbase


WikittyServiceImpl

public WikittyServiceImpl(WikittyExtensionStorage extensionStorage,
                          WikittyStorage wikittyStorage,
                          WikittySearchEngin searchEngin)
Method Detail

getSearchEngin

protected WikittySearchEngin getSearchEngin()

getExtensionStorage

protected WikittyExtensionStorage getExtensionStorage()

getWikittyStorage

protected WikittyStorage getWikittyStorage()

addWikittyServiceListener

public void addWikittyServiceListener(WikittyServiceListener 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(WikittyServiceListener 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 java.lang.String login(java.lang.String login,
                              java.lang.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(java.lang.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(java.lang.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

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(java.lang.String securityToken,
                         java.lang.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(java.lang.String securityToken,
                       java.lang.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

checkConstraint

protected void checkConstraint(java.util.Collection<Wikitty> wikitties)

store

public UpdateResponse store(java.lang.String securityToken,
                            WikittyTransaction transaction,
                            java.util.Collection<Wikitty> wikitties,
                            boolean force)
Description copied from interface: WikittyService
Manage Update and creation, action is done in transaction passed in argument.

Specified by:
store in interface WikittyService
Parameters:
securityToken - security token
transaction - transaction used to do the action (must not be null)
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

store

public UpdateResponse store(java.lang.String securityToken,
                            Wikitty wikitty)
Store and index wikitty object

Specified by:
store in interface WikittyService
Parameters:
wikitty -
securityToken - security token
Returns:
update response containing version and id of stored wikitty

store

public UpdateResponse store(java.lang.String securityToken,
                            java.util.Collection<Wikitty> wikitties)
Store and index wikitties object.

Specified by:
store in interface WikittyService
Parameters:
wikitties -
securityToken - security token
Returns:
update response containing version and id of stored wikitty

store

public UpdateResponse store(java.lang.String securityToken,
                            java.util.Collection<Wikitty> wikitties,
                            boolean force)
Store and index wikitties object.

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

getAllExtensionIds

public java.util.List<java.lang.String> getAllExtensionIds(java.lang.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 java.util.List<java.lang.String> getAllExtensionsRequires(java.lang.String securityToken,
                                                                 java.lang.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 UpdateResponse storeExtension(java.lang.String securityToken,
                                     WikittyTransaction transaction,
                                     java.util.Collection<WikittyExtension> exts)
Description copied from interface: WikittyService
Manage Update and creation, action is done in transaction passed in argument

Specified by:
storeExtension in interface WikittyService
Parameters:
securityToken - security token
transaction - transaction used to do the action (must not be null)
exts - list of wikitty extension to be persisted
Returns:
update response

storeExtension

public UpdateResponse storeExtension(java.lang.String securityToken,
                                     java.util.Collection<WikittyExtension> exts)
Save several extension.

Specified by:
storeExtension in interface WikittyService
Parameters:
exts -
securityToken - security token
Returns:
update response

storeExtension

public UpdateResponse storeExtension(java.lang.String securityToken,
                                     WikittyExtension ext)
Description copied from interface: WikittyService
Manage Update and creation.

Specified by:
storeExtension in interface WikittyService
Parameters:
securityToken - security token
ext - extension to be persisted
Returns:
update response

restoreExtension

public WikittyExtension restoreExtension(java.lang.String securityToken,
                                         WikittyTransaction transaction,
                                         java.lang.String extensionId)
Description copied from interface: WikittyService
Action is done in transaction passed in argument.

Specified by:
restoreExtension in interface WikittyService
Parameters:
securityToken - security token
transaction - transaction used to do the action (must not be null)
Returns:
the corresponding object, exception if no such object found.

restoreExtension

public WikittyExtension restoreExtension(java.lang.String securityToken,
                                         java.lang.String extensionId)
Load extension from id. Id is 'name[version]'.

Specified by:
restoreExtension in interface WikittyService
Parameters:
extensionId - extension id to restore
securityToken - security token
Returns:
extension

restoreExtensionLastVersion

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

Specified by:
restoreExtensionLastVersion in interface WikittyService
Parameters:
securityToken - security token
transaction - transaction used to do the action (must not be null)
name - extension name
Returns:
the corresponding object, exception if no such object found.

restoreExtensionLastVersion

public WikittyExtension restoreExtensionLastVersion(java.lang.String securityToken,
                                                    java.lang.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.

restore

protected Wikitty restore(java.lang.String securityToken,
                          WikittyTransaction transaction,
                          java.lang.String id)

restore

public java.util.List<Wikitty> restore(java.lang.String securityToken,
                                       WikittyTransaction transaction,
                                       java.util.List<java.lang.String> ids)
Description copied from interface: WikittyService
Restore wikitty using opened transaction.

Specified by:
restore in interface WikittyService
Parameters:
securityToken - security token
transaction - transaction to use
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 is skip and result list have less elements than collection argument

restore

public java.util.List<Wikitty> restore(java.lang.String securityToken,
                                       java.util.List<java.lang.String> ids)
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 is skip and result list have less elements than collection argument

restore

public Wikitty restore(java.lang.String securityToken,
                       java.lang.String id)
Specified by:
restore in interface WikittyService
Parameters:
securityToken - security token
id - object id to restore
Returns:
the corresponding object, or null if object doesn't exist, is deleted or you don't have authorisation (you can check authorisation before call restore with WikittyService.canRead(java.lang.String, java.lang.String)

upgradeData

protected Wikitty upgradeData(java.lang.String securityToken,
                              WikittyTransaction transaction,
                              Wikitty wikitty)

delete

protected void delete(java.lang.String securityToken,
                      WikittyTransaction transaction,
                      java.util.Collection<java.lang.String> ids)
               throws WikittyException
Throws:
WikittyException

delete

public void delete(java.lang.String securityToken,
                   java.lang.String id)
Description copied from interface: WikittyService
Delete object if id exists.

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

delete

public void delete(java.lang.String securityToken,
                   java.util.Collection<java.lang.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

clear

public void clear(java.lang.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 PagedResult<java.lang.String> findAllByCriteria(java.lang.String securityToken,
                                                       WikittyTransaction transaction,
                                                       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:

findAllByCriteria

public PagedResult<java.lang.String> findAllByCriteria(java.lang.String securityToken,
                                                       Criteria criteria)
Specified by:
findAllByCriteria in interface WikittyService
Parameters:
securityToken - security token
Returns:

findByCriteria

public Wikitty findByCriteria(java.lang.String securityToken,
                              WikittyTransaction transaction,
                              Criteria criteria)
Description copied from interface: WikittyService
Fist lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null

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

findByCriteria

public Wikitty findByCriteria(java.lang.String securityToken,
                              Criteria criteria)
Description copied from interface: WikittyService
Fist lonely (or first one) wikitty object that match criteria, if no wikitty found or first retrived is not authorized for the user return null

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

restoreTree

protected WikittyTree restoreTree(java.lang.String securityToken,
                                  WikittyTransaction transaction,
                                  java.lang.String wikittyId)

restoreTree

public WikittyTree restoreTree(java.lang.String securityToken,
                               java.lang.String wikittyId)
Description copied from interface: WikittyService
Retrieve all wikitties children (recursively) of an other one Wikitty reference by wikittyId MUST include the 'Node' extension

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

deleteTree

public java.util.List<java.lang.String> deleteTree(java.lang.String securityToken,
                                                   java.lang.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

deleteTree

public java.util.List<java.lang.String> deleteTree(java.lang.String securityToken,
                                                   WikittyTransaction transaction,
                                                   java.lang.String treeNodeId)
Delete specified treenode and sub treenode.

Parameters:
securityToken - security token
transaction - transaction
treeNodeId - thesaurusId to delete
Returns:
all id of delete nodes

getRecursiveTreeNodeId

protected java.util.List<java.lang.String> getRecursiveTreeNodeId(java.lang.String securityToken,
                                                                  WikittyTransaction transaction,
                                                                  java.lang.String treeNodeId)
Get recursive id of tree node children of treeNodeId.

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

restoreNode

public java.util.Map.Entry<WikittyTreeNode,java.lang.Integer> restoreNode(java.lang.String securityToken,
                                                                          java.lang.String wikittyId,
                                                                          Criteria filter)
Description copied from interface: WikittyService
Retrieve wikitty node with count. Wikitty reference by wikittyId MUST include the 'Node' extension.

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

restoreChildren

public java.util.Map<WikittyTreeNode,java.lang.Integer> restoreChildren(java.lang.String securityToken,
                                                                        java.lang.String wikittyId,
                                                                        Criteria filter)
Description copied from interface: WikittyService
Retrieve all wikitties children with count (no recursively) of an other one Wikitty reference by wikittyId MUST include the 'Node' extension

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

restoreVersion

public Wikitty restoreVersion(java.lang.String securityToken,
                              java.lang.String wikittyId,
                              java.lang.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

syncEngin

public UpdateResponse syncEngin(java.lang.String securityToken)
Description copied from interface: WikittyService
Synchronise search engine with wikitty storage engine, i.e. clear and reindex all wikitties.

Specified by:
syncEngin in interface WikittyService
Parameters:
securityToken - security token
Returns:
update response


Copyright © 2009-2010 CodeLutin. All Rights Reserved.