Class NoteServiceImpl
- java.lang.Object
-
- org.exoplatform.wiki.service.impl.NoteServiceImpl
-
- All Implemented Interfaces:
NoteService
public class NoteServiceImpl extends Object implements NoteService
-
-
Field Summary
Fields Modifier and Type Field Description static StringATT_CACHE_NAMEstatic StringCACHE_NAME
-
Constructor Summary
Constructors Constructor Description NoteServiceImpl(org.exoplatform.container.configuration.ConfigurationManager configManager, org.exoplatform.portal.config.UserACL userACL, DataStorage dataStorage, org.exoplatform.services.cache.CacheService cacheService, org.exoplatform.services.organization.OrganizationService orgService, WikiService wikiService, org.exoplatform.social.common.service.HTMLUploadImageProcessor htmlUploadImageProcessor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanModifyNotePermission(Page currentNote, org.exoplatform.services.security.Identity currentIdentity)Check if the given user can update the notebooleancanPublicAndRetrictNote(Page currentNote, org.exoplatform.services.security.Identity currentIdentity)Check if the given user can public or restrict the notePagecreateNote(Wiki noteBook, String parentNoteName, Page note, org.exoplatform.services.security.Identity userIdentity)Create a new note in the given notebook, under the given parent note.PagecreateNote(Wiki noteBook, Page parentPage, Page note)Create a new note in the given notebook, under the given parent note.voidcreateVersionOfNote(Page note)Creates a version of a note.booleandeleteNote(String noteType, String noteOwner, String noteName)Deletes a note.booleandeleteNote(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity)List<BreadcrumbData>getBreadcumb(String noteType, String noteOwner, String noteName)Gets a list of data which is used for composing the breadcrumb.List<Page>getChildrenNoteOf(Page note)Get all the children notes of a noteList<Page>getDuplicateNotes(Page parentNote, Wiki targetNoteBook, List<Page> resultList)Checks if a note and its children are duplicated with ones in the target NoteBook or not, then gets a list of duplicated notes if any.PagegetNoteById(String id)Gets a note based on its unique id.PagegetNoteById(String id, org.exoplatform.services.security.Identity userIdentity)PagegetNoteById(String id, org.exoplatform.services.security.Identity userIdentity, String source)PagegetNoteByRootPermission(String noteBookType, String noteBookOwner, String noteId)PagegetNoteOfNoteBookByName(String noteType, String noteOwner, String noteName)Gets a note by its unique name in the noteBook.PagegetNoteOfNoteBookByName(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity)PagegetNoteOfNoteBookByName(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity, String source)List<Page>getNotesOfWiki(String noteType, String noteOwner)Retrieve the all notes contained in noteBookMap<WikiPageParams,List<WikiPageParams>>getPageLinksMap()PagegetParentNoteOf(Page note)Get parent note of a noteList<String>getPreviousNamesOfNote(Page note)Get previous names of a noteorg.exoplatform.services.cache.ExoCache<Integer,MarkupData>getRenderingCache()PageVersiongetVersionOfNoteByName(String versionName, Page note)Gets a specific version by name of the given noteList<PageVersion>getVersionsOfNote(Page note)Gets all the versions of the given notebooleanhasAdminNotePermission(String noteType, String owner, org.exoplatform.services.security.Identity user)Checks if the current user has the admin permission on a note.booleanhasAdminSpacePermission(String noteBookType, String owner, org.exoplatform.services.security.Identity user)Checks if the current user has the admin permission on a space or not.booleanhasPermissionOnNote(Page note, PermissionType permissionType, org.exoplatform.services.security.Identity user)Checks if the given user has the permission on a noteprotected voidinvalidateAttachmentCache(Page note)protected voidinvalidateCache(Page page)protected voidinvalidateCachesOfPageTree(Page note)Invalidate all caches of a page and all its descendantsbooleanisExisting(String noteBookType, String noteBookOwner, String noteId)voidmoveNote(WikiPageParams currentLocationParams, WikiPageParams newLocationParams)Move a notebooleanmoveNote(WikiPageParams currentLocationParams, WikiPageParams newLocationParams, org.exoplatform.services.security.Identity userIdentity)Move a notevoidpostAddPage(String wikiType, String wikiOwner, String pageId, Page page)voidpostDeletePage(String wikiType, String wikiOwner, String pageId, Page page)voidpostOpenByBreadCrumb(String wikiType, String wikiOwner, String pageId, Page page)voidpostOpenByTree(String wikiType, String wikiOwner, String pageId, Page page)voidpostUpdatePage(String wikiType, String wikiOwner, String pageId, Page page, PageUpdateType wikiUpdateType)voidremoveDraftOfNote(WikiPageParams param)booleanrenameNote(String noteType, String noteOwner, String noteName, String newName, String newTitle)Renames a note.voidrestoreVersionOfNote(String versionName, Page note)Restores a version of a notevoidupdateNote(Page note)Update the given note.PageupdateNote(Page note, PageUpdateType type, org.exoplatform.services.security.Identity userIdentity)Update the given note.
-
-
-
Field Detail
-
CACHE_NAME
public static final String CACHE_NAME
- See Also:
- Constant Field Values
-
ATT_CACHE_NAME
public static final String ATT_CACHE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
NoteServiceImpl
public NoteServiceImpl(org.exoplatform.container.configuration.ConfigurationManager configManager, org.exoplatform.portal.config.UserACL userACL, DataStorage dataStorage, org.exoplatform.services.cache.CacheService cacheService, org.exoplatform.services.organization.OrganizationService orgService, WikiService wikiService, org.exoplatform.social.common.service.HTMLUploadImageProcessor htmlUploadImageProcessor)
-
-
Method Detail
-
getRenderingCache
public org.exoplatform.services.cache.ExoCache<Integer,MarkupData> getRenderingCache()
-
getPageLinksMap
public Map<WikiPageParams,List<WikiPageParams>> getPageLinksMap()
-
createNote
public Page createNote(Wiki noteBook, String parentNoteName, Page note, org.exoplatform.services.security.Identity userIdentity) throws WikiException, IllegalAccessException
Description copied from interface:NoteServiceCreate a new note in the given notebook, under the given parent note.- Specified by:
createNotein interfaceNoteService- Parameters:
noteBook- Notebook object.parentNoteName- parent note name.note- the note object to create.userIdentity- user Identity.- Returns:
- The new note.
- Throws:
WikiException- if an error occuredIllegalAccessException- if the user don't have edit rights to the parent note
-
createNote
public Page createNote(Wiki noteBook, Page parentPage, Page note) throws WikiException
Description copied from interface:NoteServiceCreate a new note in the given notebook, under the given parent note.- Specified by:
createNotein interfaceNoteService- Parameters:
noteBook- Notebook object.parentPage- parent note.note- the note to create.- Returns:
- The new note.
- Throws:
WikiException- if an error occured
-
updateNote
public void updateNote(Page note) throws WikiException
Description copied from interface:NoteServiceUpdate the given note.- Specified by:
updateNotein interfaceNoteService- Parameters:
note- Updated note- Throws:
WikiException- if an error occured
-
updateNote
public Page updateNote(Page note, PageUpdateType type, org.exoplatform.services.security.Identity userIdentity) throws WikiException, IllegalAccessException, org.gatein.api.EntityNotFoundException
Description copied from interface:NoteServiceUpdate the given note. This does not automatically create a new version. If a new version must be created it should be explicitly done by calling createVersionOfNote(). The second parameter is the type of update done (title only, content only, both, move, ...).- Specified by:
updateNotein interfaceNoteService- Parameters:
note- Updated notetype- Type of updateuserIdentity- user Identity- Returns:
- The updated note
- Throws:
WikiException- if an error occureIllegalAccessException- if the user don't have edit rights on the noteorg.gatein.api.EntityNotFoundException- if the the note to update don't exist
-
deleteNote
public boolean deleteNote(String noteType, String noteOwner, String noteName) throws WikiException
Description copied from interface:NoteServiceDeletes a note.- Specified by:
deleteNotein interfaceNoteService- Parameters:
noteType- It can be Portal, Group, or User.noteOwner- The NoteBook owner.noteName- Id of the note.- Returns:
- "True" if deleting the note is successful, or "false" if not.
- Throws:
WikiException- if an error occured
-
deleteNote
public boolean deleteNote(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity) throws WikiException, IllegalAccessException, org.gatein.api.EntityNotFoundException
- Specified by:
deleteNotein interfaceNoteService- Throws:
WikiExceptionIllegalAccessExceptionorg.gatein.api.EntityNotFoundException
-
renameNote
public boolean renameNote(String noteType, String noteOwner, String noteName, String newName, String newTitle) throws WikiException
Description copied from interface:NoteServiceRenames a note.- Specified by:
renameNotein interfaceNoteService- Parameters:
noteType- It can be Portal, Group, or User.noteOwner- The NoteBook owner.noteName- Old name of the note.newName- New name of the note.newTitle- New title of the note.- Returns:
- "True" if renaming the note is successful, or "false" if not.
- Throws:
WikiException- if an error occured
-
moveNote
public void moveNote(WikiPageParams currentLocationParams, WikiPageParams newLocationParams) throws WikiException
Description copied from interface:NoteServiceMove a note- Specified by:
moveNotein interfaceNoteService- Parameters:
currentLocationParams- The current location of the note.newLocationParams- The new location of the note.- Throws:
WikiException- if an error occured
-
moveNote
public boolean moveNote(WikiPageParams currentLocationParams, WikiPageParams newLocationParams, org.exoplatform.services.security.Identity userIdentity) throws WikiException, IllegalAccessException, org.gatein.api.EntityNotFoundException
Description copied from interface:NoteServiceMove a note- Specified by:
moveNotein interfaceNoteService- Parameters:
currentLocationParams- The current location of the note.newLocationParams- The new location of the note.userIdentity- The user Identity to check permissions.- Returns:
- "True" if moving the note is successful, or "false" if not.
- Throws:
WikiException- if an error occuredIllegalAccessException- if the user don't have edit rights on the noteorg.gatein.api.EntityNotFoundException- if the the note to move don't exist
-
getNoteOfNoteBookByName
public Page getNoteOfNoteBookByName(String noteType, String noteOwner, String noteName) throws WikiException
Description copied from interface:NoteServiceGets a note by its unique name in the noteBook.- Specified by:
getNoteOfNoteBookByNamein interfaceNoteService- Parameters:
noteType- It can be Portal, Group, or User.noteOwner- The NoteBook owner.noteName- Id of the note.- Returns:
- The note if the current user has the read permission. Otherwise, it is "null".
- Throws:
WikiException- if an error occured
-
getNoteOfNoteBookByName
public Page getNoteOfNoteBookByName(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity, String source) throws IllegalAccessException, WikiException
- Specified by:
getNoteOfNoteBookByNamein interfaceNoteService- Throws:
IllegalAccessExceptionWikiException
-
getNoteOfNoteBookByName
public Page getNoteOfNoteBookByName(String noteType, String noteOwner, String noteName, org.exoplatform.services.security.Identity userIdentity) throws IllegalAccessException, WikiException
- Specified by:
getNoteOfNoteBookByNamein interfaceNoteService- Throws:
IllegalAccessExceptionWikiException
-
getNoteById
public Page getNoteById(String id) throws WikiException
Description copied from interface:NoteServiceGets a note based on its unique id.- Specified by:
getNoteByIdin interfaceNoteService- Parameters:
id- Unique id of the note.- Returns:
- The note.
- Throws:
WikiException- if an error occured
-
getNoteById
public Page getNoteById(String id, org.exoplatform.services.security.Identity userIdentity) throws IllegalAccessException, WikiException
- Specified by:
getNoteByIdin interfaceNoteService- Throws:
IllegalAccessExceptionWikiException
-
getNoteById
public Page getNoteById(String id, org.exoplatform.services.security.Identity userIdentity, String source) throws IllegalAccessException, WikiException
- Specified by:
getNoteByIdin interfaceNoteService- Throws:
IllegalAccessExceptionWikiException
-
getParentNoteOf
public Page getParentNoteOf(Page note) throws WikiException
Description copied from interface:NoteServiceGet parent note of a note- Specified by:
getParentNoteOfin interfaceNoteService- Parameters:
note- note.- Returns:
- The list of children notes
- Throws:
WikiException- if an error occured
-
getChildrenNoteOf
public List<Page> getChildrenNoteOf(Page note) throws WikiException
Description copied from interface:NoteServiceGet all the children notes of a note- Specified by:
getChildrenNoteOfin interfaceNoteService- Parameters:
note- note.- Returns:
- The list of children notes
- Throws:
WikiException- if an error occured
-
getBreadcumb
public List<BreadcrumbData> getBreadcumb(String noteType, String noteOwner, String noteName) throws WikiException
Description copied from interface:NoteServiceGets a list of data which is used for composing the breadcrumb.- Specified by:
getBreadcumbin interfaceNoteService- Parameters:
noteType- It can be Portal, Group, or User.noteOwner- The owner.noteName- Id of the note to which the breadcrumb points.- Returns:
- The list of data.
- Throws:
WikiException- if an error occured
-
getDuplicateNotes
public List<Page> getDuplicateNotes(Page parentNote, Wiki targetNoteBook, List<Page> resultList) throws WikiException
Description copied from interface:NoteServiceChecks if a note and its children are duplicated with ones in the target NoteBook or not, then gets a list of duplicated notes if any.- Specified by:
getDuplicateNotesin interfaceNoteService- Parameters:
parentNote- The note to check.targetNoteBook- The target NoteBook to check.resultList- The list of duplicated notes.- Returns:
- The list of duplicated notes.
- Throws:
WikiException- if an error occured
-
removeDraftOfNote
public void removeDraftOfNote(WikiPageParams param) throws WikiException
- Specified by:
removeDraftOfNotein interfaceNoteService- Throws:
WikiException
-
hasPermissionOnNote
public boolean hasPermissionOnNote(Page note, PermissionType permissionType, org.exoplatform.services.security.Identity user) throws WikiException
Description copied from interface:NoteServiceChecks if the given user has the permission on a note- Specified by:
hasPermissionOnNotein interfaceNoteService- Parameters:
note- the note to checkpermissionType- type of permissions to chackuser- the user- Returns:
- true if user has permissions on the note
- Throws:
WikiException- if an error occured
-
hasAdminSpacePermission
public boolean hasAdminSpacePermission(String noteBookType, String owner, org.exoplatform.services.security.Identity user) throws WikiException
Description copied from interface:NoteServiceChecks if the current user has the admin permission on a space or not.- Specified by:
hasAdminSpacePermissionin interfaceNoteService- Parameters:
noteBookType- It can be Portal, Group, or User.owner- Owner of the space.user- Identity of current user.- Returns:
- The returned value is "true" if the current user has the admin permission on the space, or "false" if not.
- Throws:
WikiException- if an error occured
-
hasAdminNotePermission
public boolean hasAdminNotePermission(String noteType, String owner, org.exoplatform.services.security.Identity user) throws WikiException
Description copied from interface:NoteServiceChecks if the current user has the admin permission on a note.- Specified by:
hasAdminNotePermissionin interfaceNoteService- Parameters:
noteType- It can be Portal, Group, or User.owner- Owner of the noteBook.user- Identity of current user.- Returns:
- "True" if the current user has the admin permission on the note, or "false" if not.
- Throws:
WikiException- if an error occured
-
canModifyNotePermission
public boolean canModifyNotePermission(Page currentNote, org.exoplatform.services.security.Identity currentIdentity) throws WikiException
Description copied from interface:NoteServiceCheck if the given user can update the note- Specified by:
canModifyNotePermissionin interfaceNoteService- Parameters:
currentNote- The note to updatecurrentIdentity- The identity of user user that needs to update the note- Returns:
- true if the user can update the note
- Throws:
WikiException- if an error occured
-
canPublicAndRetrictNote
public boolean canPublicAndRetrictNote(Page currentNote, org.exoplatform.services.security.Identity currentIdentity) throws WikiException
Description copied from interface:NoteServiceCheck if the given user can public or restrict the note- Specified by:
canPublicAndRetrictNotein interfaceNoteService- Parameters:
currentNote- the note to chack permissionscurrentIdentity- The identity of user- Returns:
- true if the current user has EditNote permission or admin note or admin space
- Throws:
WikiException- if an error occured
-
getVersionsOfNote
public List<PageVersion> getVersionsOfNote(Page note) throws WikiException
Description copied from interface:NoteServiceGets all the versions of the given note- Specified by:
getVersionsOfNotein interfaceNoteService- Parameters:
note- The note- Returns:
- All the versions of the note
- Throws:
WikiException- if an error occured
-
getVersionOfNoteByName
public PageVersion getVersionOfNoteByName(String versionName, Page note) throws WikiException
Description copied from interface:NoteServiceGets a specific version by name of the given note- Specified by:
getVersionOfNoteByNamein interfaceNoteService- Parameters:
versionName- The name of the versionnote- The note- Returns:
- The version of the note
- Throws:
WikiException- if an error occured
-
createVersionOfNote
public void createVersionOfNote(Page note) throws WikiException
Description copied from interface:NoteServiceCreates a version of a note. This method only tag the current note data as a new version, it does not update the note data- Specified by:
createVersionOfNotein interfaceNoteService- Parameters:
note- The note- Throws:
WikiException- if an error occured
-
restoreVersionOfNote
public void restoreVersionOfNote(String versionName, Page note) throws WikiException
Description copied from interface:NoteServiceRestores a version of a note- Specified by:
restoreVersionOfNotein interfaceNoteService- Parameters:
versionName- The name of the version to restorenote- The note- Throws:
WikiException- if an error occured
-
getPreviousNamesOfNote
public List<String> getPreviousNamesOfNote(Page note) throws WikiException
Description copied from interface:NoteServiceGet previous names of a note- Specified by:
getPreviousNamesOfNotein interfaceNoteService- Parameters:
note- The note- Returns:
- List of all the previous names of the note
- Throws:
WikiException- if an error occured
-
getNotesOfWiki
public List<Page> getNotesOfWiki(String noteType, String noteOwner)
Description copied from interface:NoteServiceRetrieve the all notes contained in noteBook- Specified by:
getNotesOfWikiin interfaceNoteService- Parameters:
noteType- the notebook Type It can be Portal, Group, or User.noteOwner- the notebook owner- Returns:
- List of pages
-
isExisting
public boolean isExisting(String noteBookType, String noteBookOwner, String noteId) throws WikiException
- Specified by:
isExistingin interfaceNoteService- Throws:
WikiException
-
getNoteByRootPermission
public Page getNoteByRootPermission(String noteBookType, String noteBookOwner, String noteId) throws WikiException
- Specified by:
getNoteByRootPermissionin interfaceNoteService- Throws:
WikiException
-
invalidateCache
protected void invalidateCache(Page page)
-
invalidateCachesOfPageTree
protected void invalidateCachesOfPageTree(Page note) throws WikiException
Invalidate all caches of a page and all its descendants- Parameters:
note- root page- Throws:
WikiException- if an error occured
-
invalidateAttachmentCache
protected void invalidateAttachmentCache(Page note)
-
postUpdatePage
public void postUpdatePage(String wikiType, String wikiOwner, String pageId, Page page, PageUpdateType wikiUpdateType) throws WikiException
- Throws:
WikiException
-
postAddPage
public void postAddPage(String wikiType, String wikiOwner, String pageId, Page page) throws WikiException
- Throws:
WikiException
-
postDeletePage
public void postDeletePage(String wikiType, String wikiOwner, String pageId, Page page) throws WikiException
- Throws:
WikiException
-
postOpenByTree
public void postOpenByTree(String wikiType, String wikiOwner, String pageId, Page page) throws WikiException
- Throws:
WikiException
-
postOpenByBreadCrumb
public void postOpenByBreadCrumb(String wikiType, String wikiOwner, String pageId, Page page) throws WikiException
- Throws:
WikiException
-
-