Interface KmeliaService

All Superinterfaces:
org.silverpeas.core.ApplicationService
All Known Implementing Classes:
DefaultKmeliaService

public interface KmeliaService extends org.silverpeas.core.ApplicationService
This is the Service interface controller of the MVC. It controls all the activities that happen in a client session. It also provides mechanisms to access other services.
Author:
Nicolas Eysseric
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addAttachmentToPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, String filename, String description, byte[] contents)
     
    org.silverpeas.core.node.model.NodePK
    addAxis(org.silverpeas.core.node.model.NodeDetail axis, String componentId)
    Add the given axis into the specified component instance.
    void
    addInfoLinks(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, List<org.silverpeas.core.ResourceReference> links)
    Updates the publication links
    void
    addPosition(String fatherId, org.silverpeas.core.node.model.NodeDetail position, String componentId, String userId)
    Add position to an axis in the given component instance and for the specified user.
    void
    addPublicationToCombination(String pubId, List<String> combination, String componentId)
    Add for the given publication a combination of position on the axis of the component instance.
    void
    addPublicationToTopic(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK fatherPK, boolean isACreation)
    Add a publication to a topic and send email alerts to topic subscribers
    void
    addPublicationToTopicWithoutNotifications(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK fatherPK, boolean isACreation)
     
    org.silverpeas.core.node.model.NodeDetail
    addSubTopic(org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.node.model.NodeDetail subtopic, String alertType)
    Add a subtopic to currentTopic and alert users about it.
    org.silverpeas.core.node.model.NodeDetail
    addToTopic(org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.node.model.NodeDetail subtopic)
    Add a subtopic to the specified topic.
    void
    changeTopicStatus(String newStatus, org.silverpeas.core.node.model.NodePK nodePK, boolean recursiveChanges)
     
    clonePublication(org.silverpeas.core.contribution.publication.model.CompletePublication refPubComplete, org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, String nextStatus)
    Clone the given publication.
    org.silverpeas.core.node.model.NodeDetail
    Copies the node according to the information provided by the specified copy descriptor.
    org.silverpeas.core.contribution.publication.model.PublicationDetail
    copyPublication(org.silverpeas.core.contribution.publication.model.PublicationDetail publication, KmeliaCopyDetail copyDetail)
    Copies the specified publication according to the given copy descriptor.
    void
    Copies all the publications defined in the specified copy descriptor.
    createKmaxPublication(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail)
    Create a new publication (only the header, no content) in a Kmax instance.
    createPublicationIntoTopic(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, org.silverpeas.core.node.model.NodePK fatherPK)
    Create a new Publication (only the header - parameters) to the current Topic
    createPublicationIntoTopic(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.pdc.pdc.model.PdcClassification classification)
    Creates a new publication into the specified topic and with the specified classification on the PdC.
    org.silverpeas.core.node.model.NodeDetail
    createTopic(String componentId, String topicId, String spaceId, String userId, String name, String description)
     
    void
    deleteAllReadingControlsByPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    delete reading controls to a publication
    void
    deleteAxis(String axisId, String componentId)
    Delete the given axis in the specified component instance.
    void
    deleteClone(org.silverpeas.core.contribution.publication.model.PublicationPK pk)
     
    void
    deletePosition(String positionId, String componentId)
    Delete a position in an axis
    void
    deletePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
    Deletes the specified publication.
    void
    deletePublicationFromCombination(String pubId, String combinationId, String componentId)
    Remove for the given publication the specified combination of positions on the axis of the component instance.
    deletePublications(List<String> publiIds, org.silverpeas.core.node.model.NodePK topicId, String userId)
    Deletes the specified publications located into the given topic.
    void
    deleteSilverContent(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
     
    void
    deleteTopic(org.silverpeas.core.node.model.NodePK topic, String userId)
    Deletes the specified topic located into the given parent topic.
    void
    draftInPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Change publication status from any state to draft
    void
    draftInPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
     
    void
    draftOutPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile)
    Change publication status from draft to valid (for publisher) or toValidate (for redactor)
    void
    draftOutPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile, boolean forceUpdateDate)
     
    org.silverpeas.core.contribution.publication.model.PublicationDetail
    draftOutPublicationWithoutNotifications(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile)
     
    void
    externalElementsOfPublicationHaveChanged(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
    alert that an external elements of publication (wysiwyg, attachment, versioning) has been created, updated or removed
    filterPublications(List<KmeliaPublication> publications, String instanceId, org.silverpeas.core.admin.user.model.SilverpeasRole profile, String userId)
     
    get()
     
    getActiveValidatorIds(org.silverpeas.core.contribution.publication.model.PublicationPK pk)
     
    Collection<org.silverpeas.core.contribution.publication.model.Location>
    getAliases(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Gets all the aliases of the specified publication, whatever the component instance and without taking into account the publication is a clone or not.
    List<org.silverpeas.core.node.model.NodeDetail>
    getAllowedSubfolders(org.silverpeas.core.node.model.NodeDetail folder, String userId)
     
    getAllValidators(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
     
    getAuthorizedPublicationsOfFolder(org.silverpeas.core.node.model.NodePK pk, String userProfile, String userId, boolean isTreeStructureUsed)
    Gets the publications linked to the folder represented by given NodePK reference.
    List<org.silverpeas.core.node.model.NodeDetail>
    getAxis(String componentId)
    Get the axis on which publications are categorized in the specified component instance.
    List<org.silverpeas.core.node.model.NodeDetail>
    getAxisHeaders(String componentId)
    Get the header of the axis on which publications are categorized in the specified component instance.
    org.silverpeas.core.node.model.NodePK
    getBestLocationOfPublicationForUser(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
    Gets the father of the specified publication according to the rights of the user.
    getBestTopicDetailOfPublicationForUser(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, boolean isTreeStructureUsed, String userId)
    Gets the details about the father from which the specified publication is accessible to the given user.
    org.silverpeas.core.contribution.publication.model.CompletePublication
    getCompletePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Gets the complete details about the publication referred by the specified unique identifier.
    getContributionById(org.silverpeas.core.contribution.model.ContributionIdentifier contributionId)
     
    org.silverpeas.core.node.model.NodeDetail
    getExpandedPathToNode(org.silverpeas.core.node.model.NodePK pk, String userId)
     
    org.silverpeas.core.node.model.NodeDetail
    getFolder(org.silverpeas.core.node.model.NodePK nodePK, String userId)
    Gets the details about the specified folder.
    Collection<org.silverpeas.core.node.model.NodeDetail>
    getFolderChildren(org.silverpeas.core.node.model.NodePK nodePK, String userId)
     
    getKmaxPublication(String pubId, String currentUserId)
    Get the given publication for the given user.
    List<org.silverpeas.core.silverstatistics.access.model.HistoryObjectDetail>
    getLastAccess(org.silverpeas.core.contribution.publication.model.PublicationPK pk, org.silverpeas.core.node.model.NodePK nodePK, String excludedUserId, int maxResult)
     
    getLatestAuthorizedPublications(String instanceId, String userId, int limit)
    Checks rights on publications order by descending begin visibility date of publication.
    Gets the publications linked with the specified one and for which the specified user is authorized to access.
    Collection<org.silverpeas.core.contribution.publication.model.Location>
    getLocations(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Gets all the locations of the specified publication; whatever the component instance.
    getModelUsed(String instanceId, String nodeId)
     
    org.silverpeas.core.node.model.NodeDetail
    getNodeHeader(String id, String componentId)
    Get the header of the specified node.
    getNonVisiblePublications(String componentId, String userId)
     
    Collection<org.silverpeas.core.node.model.NodeDetail>
    getPath(String positionId, String componentId)
    Get path of a position in an axis.
    Collection<Collection<org.silverpeas.core.node.model.NodeDetail>>
    getPathList(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Return list of all path to this publication - it's a Collection of NodeDetail collection
    getPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK)
    Gets the Kmelia publication identified by the specified identifying key and that is located into the specified topic.
    Collection<org.silverpeas.core.node.coordinates.model.Coordinate>
    Get the coordinates for the given publication on the axis of the specified component instance.
    org.silverpeas.core.contribution.publication.model.PublicationDetail
    getPublicationDetail(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Return the detail of a publication (only the Header)
    <T extends org.silverpeas.core.ResourceReference>
    List<org.silverpeas.core.contribution.publication.model.PublicationDetail>
    getPublicationDetails(List<T> references)
    gets a list of PublicationDetail corresponding to the links parameter
    org.silverpeas.core.node.model.NodePK
    getPublicationFatherPK(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    Gets the father of the specified publication.
    <T extends org.silverpeas.core.ResourceReference>
    List<KmeliaPublication>
    getPublications(List<T> references, String userId, org.silverpeas.core.node.model.NodePK contextFolder, boolean accessControlFiltering)
    Gets a list of publications with optional control access filtering.
    <T extends org.silverpeas.core.ResourceReference>
    List<org.silverpeas.kernel.util.Pair<KmeliaPublication,KmeliaPublication>>
    getPublicationsForModification(List<T> references, String userId)
    Gets a list of Pair of KmeliaPublication instances into context of modification by a user represented by the given user id.
    getPublicationsToValidate(String componentId, String userId)
     
    org.silverpeas.core.node.model.NodeDetail
    getRoot(String componentId, String userId)
     
    int
    getSilverObjectId(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
     
    org.silverpeas.core.node.model.NodeDetail
    getSubTopicDetail(org.silverpeas.core.node.model.NodePK nodePK)
    Return a subtopic to currentTopic
    List<org.silverpeas.core.node.model.NodeDetail>
    getTreeview(org.silverpeas.core.node.model.NodePK nodePK, String profile, boolean coWritingEnable, boolean draftVisibleWithCoWriting, String userId, boolean displayNb, boolean isRightsOnTopicsUsed)
     
    Get publications that aren't categorized on any axis.
    getUserIdsOfFolder(org.silverpeas.core.node.model.NodePK pk)
     
    org.silverpeas.core.notification.user.UserNotification
    getUserNotification(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.contribution.attachment.model.SimpleDocumentPK documentPk, org.silverpeas.core.node.model.NodePK topicPK)
    Send an email to alert users about an attachment
    org.silverpeas.core.notification.user.UserNotification
    getUserNotification(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK)
    Send an email to alert users of a publication creation
    org.silverpeas.core.notification.user.UserNotification
    getUserNotification(org.silverpeas.core.node.model.NodePK pk)
    Send a notification to alert users about a folder
    getUserTopicProfile(org.silverpeas.core.node.model.NodePK pk, String userId)
     
    goTo(org.silverpeas.core.node.model.NodePK nodePK, String userId, boolean isTreeStructureUsed, String userProfile, boolean mustUserRightsBeChecked)
     
    void
    indexKmax(String componentId)
     
    void
    indexKmelia(String componentId)
     
    boolean
    isUserCanPublish(String componentId, String userId)
     
    boolean
    isUserCanValidate(String componentId, String userId)
     
    boolean
    isUserCanValidatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
     
    boolean
    isUserCanWrite(String componentId, String userId)
     
    void
    moveNode(org.silverpeas.core.node.model.NodePK nodePK, org.silverpeas.core.node.model.NodePK to, KmeliaPasteDetail pasteContext)
     
    void
    movePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK to, KmeliaPasteDetail pasteContext)
     
    void
    movePublicationInSameApplication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK from, KmeliaPasteDetail pasteContext)
     
    void
    performReminder(org.silverpeas.core.reminder.Reminder reminder)
    Performs processes about kmelia linked to given reminder.
    If kmelia is not concerned, nothing is performed.
    void
    removeContentOfPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
     
    search(List<String> combination, int nbDays, String componentId)
    Get publications categorized in a combination of positions and that are visible or created the given number of days ago.
    search(List<String> combination, String componentId)
    Get publications categorized in a combination of positions.
    void
    sendModificationAlert(int modificationScope, org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
     
    void
    setAliases(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, List<org.silverpeas.core.contribution.publication.model.Location> locations)
     
    void
    setModelUsed(String[] models, String instanceId, String nodeId)
     
    void
    setValidators(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userIds)
     
    void
    sortSubTopics(org.silverpeas.core.node.model.NodePK fatherPK, boolean recursive, String[] criteria)
     
    void
    suspendPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String refusalMotive, String userId)
     
    void
    unvalidatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, String refusalMotive, int validationType)
     
    void
    updateAxis(org.silverpeas.core.node.model.NodeDetail axis, String componentId)
    Update the given axis in the specified component instance.
    void
    updatePosition(org.silverpeas.core.node.model.NodeDetail position, String componentId)
    Update a position in an axis
    void
    updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail)
    Update a publication (only the header - parameters)
    void
    updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail, boolean forceUpdateDate)
     
    void
    updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail, org.silverpeas.core.pdc.pdc.model.PdcClassification classification)
    Update a publication (only the header - parameters)
    org.silverpeas.core.node.model.NodeDetail
    updateTopic(org.silverpeas.core.node.model.NodeDetail topic, String alertType)
    Update the specified topic and alert users about it.
    void
     
    boolean
    validatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, boolean force, boolean hasUserNoMoreValidationRight)
     

    Methods inherited from interface org.silverpeas.core.ApplicationService

    getComponentMessages, getComponentSettings, isRelatedTo
  • Method Details

    • get

      static KmeliaService get()
    • getContributionById

      Optional<KmeliaPublication> getContributionById(org.silverpeas.core.contribution.model.ContributionIdentifier contributionId)
      Specified by:
      getContributionById in interface org.silverpeas.core.ApplicationService
    • goTo

      TopicDetail goTo(org.silverpeas.core.node.model.NodePK nodePK, String userId, boolean isTreeStructureUsed, String userProfile, boolean mustUserRightsBeChecked)
    • getAllowedSubfolders

      List<org.silverpeas.core.node.model.NodeDetail> getAllowedSubfolders(org.silverpeas.core.node.model.NodeDetail folder, String userId)
    • addToTopic

      org.silverpeas.core.node.model.NodeDetail addToTopic(org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.node.model.NodeDetail subtopic)
      Add a subtopic to the specified topic.
      Parameters:
      fatherPK - the topic identifier of the father topic.
      subtopic - the details about the new subtopic.
      Returns:
      the new added subtopic.
      Since:
      1.0
      See Also:
      • NodeDetail
      • NodePK
    • addSubTopic

      org.silverpeas.core.node.model.NodeDetail addSubTopic(org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.node.model.NodeDetail subtopic, String alertType)
      Add a subtopic to currentTopic and alert users about it.
      Parameters:
      subtopic - the details about the new subtopic
      alertType - Notifies either all users ("All""), only publishers ("Publisher") or nobody ("None") about the topic creation.
      Returns:
      the new added subtopic.
      Since:
      1.0
      See Also:
      • NodeDetail
      • NodePK
    • updateTopic

      org.silverpeas.core.node.model.NodeDetail updateTopic(org.silverpeas.core.node.model.NodeDetail topic, String alertType)
      Update the specified topic and alert users about it.
      Parameters:
      topic - the updated data of the topic.
      alertType - Notifies either all users ("All""), only publishers ("Publisher") or nobody ("None") about the topic creation.
      Returns:
      the updated topic.
      Since:
      1.0
      See Also:
      • NodeDetail
      • NodePK
    • getSubTopicDetail

      org.silverpeas.core.node.model.NodeDetail getSubTopicDetail(org.silverpeas.core.node.model.NodePK nodePK)
      Return a subtopic to currentTopic
      Parameters:
      nodePK - the id of the researched topic
      Returns:
      the detail of the specified topic
      Since:
      1.0
      See Also:
      • NodeDetail
    • changeTopicStatus

      void changeTopicStatus(String newStatus, org.silverpeas.core.node.model.NodePK nodePK, boolean recursiveChanges)
    • sortSubTopics

      void sortSubTopics(org.silverpeas.core.node.model.NodePK fatherPK, boolean recursive, String[] criteria)
    • getTreeview

      List<org.silverpeas.core.node.model.NodeDetail> getTreeview(org.silverpeas.core.node.model.NodePK nodePK, String profile, boolean coWritingEnable, boolean draftVisibleWithCoWriting, String userId, boolean displayNb, boolean isRightsOnTopicsUsed)
    • getPublicationDetail

      org.silverpeas.core.contribution.publication.model.PublicationDetail getPublicationDetail(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Return the detail of a publication (only the Header)
      Parameters:
      pubPK - the id of the publication
      Returns:
      a PublicationDetail
      Since:
      1.0
      See Also:
      • PublicationDetail
    • getAuthorizedPublicationsOfFolder

      List<KmeliaPublication> getAuthorizedPublicationsOfFolder(org.silverpeas.core.node.model.NodePK pk, String userProfile, String userId, boolean isTreeStructureUsed)
      Gets the publications linked to the folder represented by given NodePK reference.

      In any case, user right access to a publication is verified so that only accessible ones are included into returned list.

      Parameters:
      pk - the reference to a folder.
      userProfile - a user profile
      userId - the identifier of the user for which access controls MUST be verified.
      isTreeStructureUsed - true if publications are represented into tree structure, false otherwise.
      Returns:
      a list of KmeliaPublication instances.
    • getLatestAuthorizedPublications

      List<KmeliaPublication> getLatestAuthorizedPublications(String instanceId, String userId, int limit)
      Checks rights on publications order by descending begin visibility date of publication.

      Due to the nature of this service, it is not designed to by used by update processes and the result is so cached at request scope in order to avoid to perform several times the same request.

      Parameters:
      instanceId - the identifier of the instance.
      userId - the identifier of the user for which access controls MUST be verified.
      limit - the maximum number of publications to return (0 = no limit).
      Returns:
      a list of KmeliaPublication instances.
    • getPathList

      Collection<Collection<org.silverpeas.core.node.model.NodeDetail>> getPathList(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Return list of all path to this publication - it's a Collection of NodeDetail collection
      Parameters:
      pubPK - the id of the publication
      Returns:
      a Collection of NodeDetail collection
      Since:
      1.0
      See Also:
      • NodeDetail
    • getPublicationFatherPK

      org.silverpeas.core.node.model.NodePK getPublicationFatherPK(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Gets the father of the specified publication. If the publication is a clone of a main one, then gets the father of the cloned publication. The father returned should be the main location of the publication. It the publication is an orphaned one, null is returned.
      Parameters:
      pubPK - the identifying key of the publication.
      Returns:
      the father of the publication or null if the publication is an orphaned one.
    • createPublicationIntoTopic

      String createPublicationIntoTopic(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, org.silverpeas.core.node.model.NodePK fatherPK)
      Create a new Publication (only the header - parameters) to the current Topic
      Parameters:
      pubDetail - a PublicationDetail
      Returns:
      the id of the new publication
      Since:
      1.0
      See Also:
      • PublicationDetail
    • createPublicationIntoTopic

      String createPublicationIntoTopic(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, org.silverpeas.core.node.model.NodePK fatherPK, org.silverpeas.core.pdc.pdc.model.PdcClassification classification)
      Creates a new publication into the specified topic and with the specified classification on the PdC.
      Parameters:
      pubDetail - the detail about the publication to create.
      fatherPK - the unique identifier of the topic into which the publication is published.
      classification - the classification on the PdC of the publication content.
      Returns:
      the unique identifier of the created publication.
    • updatePublication

      void updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail)
      Update a publication (only the header - parameters)
      Parameters:
      detail - a PublicationDetail
      Since:
      1.0
      See Also:
      • PublicationDetail
    • updatePublication

      void updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail, org.silverpeas.core.pdc.pdc.model.PdcClassification classification)
      Update a publication (only the header - parameters)
      Parameters:
      detail - a PublicationDetail
      classification - the classification on the PdC of the publication content.
      Since:
      1.0
      See Also:
      • PublicationDetail
    • updatePublication

      void updatePublication(org.silverpeas.core.contribution.publication.model.PublicationDetail detail, boolean forceUpdateDate)
    • addPublicationToTopic

      void addPublicationToTopic(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK fatherPK, boolean isACreation)
      Add a publication to a topic and send email alerts to topic subscribers
      Parameters:
      pubPK - the id of the publication
      fatherPK - the id of the topic
      Since:
      1.0
    • addPublicationToTopicWithoutNotifications

      void addPublicationToTopicWithoutNotifications(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK fatherPK, boolean isACreation)
    • addInfoLinks

      void addInfoLinks(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, List<org.silverpeas.core.ResourceReference> links)
      Updates the publication links
      Parameters:
      pubPK - publication identifier which you want to update links
      links - list of publication to link with current.
    • getCompletePublication

      org.silverpeas.core.contribution.publication.model.CompletePublication getCompletePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Gets the complete details about the publication referred by the specified unique identifier.
      Parameters:
      pubPK - the unique identifier of a Kmelia publication.
      Returns:
      a CompletePublication object.
    • getPublication

      KmeliaPublication getPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK)
      Gets the Kmelia publication identified by the specified identifying key and that is located into the specified topic. As a Kmelia publication can be in different locations, all publications other than the original father of the publication are considered as an alias of that original publication. This is why it is required to know the father of the asked publication.
      Parameters:
      pubPK - identifier of the publication to get.
      topicPK - identifier of the topic in which the publication is located.
      Returns:
      the asked KmeliaPublication instance.
    • getBestTopicDetailOfPublicationForUser

      TopicDetail getBestTopicDetailOfPublicationForUser(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, boolean isTreeStructureUsed, String userId)
      Gets the details about the father from which the specified publication is accessible to the given user. If the main location of the publication isn't accessible by the user, then the first accessible alias of the publication is returned. If no aliases are accessible or defined, the details of the root topic is returned.

      The component instance set to given PublicationPK gives the priority of the resulting TopicDetail. For example, in case of a main publication on instance A with aliases on instance B, if component instance id set to given PublicationPK is the B one, then TopicDetail result is about the best father PK (the best location) on instance B (so an alias in that case).

      Parameters:
      pubPK - the unique identifier of the publication.
      isTreeStructureUsed - is the tree view of the topics enabled?
      userId - the unique identifier of a user.
      Returns:
      the details of the topic in which the publication is accessible by the given user.
    • getBestLocationOfPublicationForUser

      org.silverpeas.core.node.model.NodePK getBestLocationOfPublicationForUser(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
      Gets the father of the specified publication according to the rights of the user. If the main location of the publication isn't accessible by the user, then the first accessible alias of the publication is returned. If no aliases are accessible or defined, the root topic is returned.

      The component instance set to given PublicationPK gives the priority of the resulting NodePK. For example, into case of a main publication on instance A with aliases on instance B, if component instance id set to given PublicationPK is the B one, then the best father PK (the best location) on instance B is returned (so an alias in that case).

      Parameters:
      pubPK - the unique identifier of the publication
      userId - the unique identifier of a user.
      Returns:
      a topic in which the publication is accessible by the given user.
    • getPublicationDetails

      <T extends org.silverpeas.core.ResourceReference> List<org.silverpeas.core.contribution.publication.model.PublicationDetail> getPublicationDetails(List<T> references)
      gets a list of PublicationDetail corresponding to the links parameter
      Parameters:
      references - list of publication (componentID + publicationId)
      Returns:
      a list of PublicationDetail
    • getPublications

      <T extends org.silverpeas.core.ResourceReference> List<KmeliaPublication> getPublications(List<T> references, String userId, org.silverpeas.core.node.model.NodePK contextFolder, boolean accessControlFiltering)
      Gets a list of publications with optional control access filtering.

      When a folder is given as context, then the ALIAS information is computed on each publication.

      Parameters:
      references - list of publication represented as ResourceReference instances.
      userId - identifier User. allow to check if the publication is accessible for current user
      contextFolder - optional folder that represents if specified the folder into which the given references are retrieved. It is MANDATORY to determinate alias status.
      accessControlFiltering - true to filter the publication according user rights.
      Returns:
      a collection of Kmelia publications
    • getPublicationsForModification

      <T extends org.silverpeas.core.ResourceReference> List<org.silverpeas.kernel.util.Pair<KmeliaPublication,KmeliaPublication>> getPublicationsForModification(List<T> references, String userId)
      Gets a list of Pair of KmeliaPublication instances into context of modification by a user represented by the given user id. On the left of a Pair instance, there is a publication that can not be a null value. On the right, there is the clone of the publication if any, and so, it can be null if the publication has got no clone.

      The main location is computed for each publication (and clone) by taking care about performances.

      This service guarantees that the returned KmeliaPublication instances each aims the main location.

      Parameters:
      references - list of publication represented as ResourceReference instances.
      userId - identifier User. allow to check if the publication is accessible for current user
      Returns:
      a list of Pair of KmeliaPublication instances. A pair represents on the left the publication and the eventual corresponding clone on the right if it exists.
    • getLinkedPublications

      List<KmeliaPublication> getLinkedPublications(KmeliaPublication publication, String userId)
      Gets the publications linked with the specified one and for which the specified user is authorized to access.
      Parameters:
      publication - the publication from which linked publications are get.
      userId - the unique identifier of a user. It allows to check if a linked publication is accessible for the specified user.
      Returns:
      a list of Kmelia publications.
    • getPublicationsToValidate

      List<KmeliaPublication> getPublicationsToValidate(String componentId, String userId)
    • isUserCanValidatePublication

      boolean isUserCanValidatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
    • getAllValidators

      ValidatorsList getAllValidators(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    • setValidators

      void setValidators(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userIds)
    • validatePublication

      boolean validatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, boolean force, boolean hasUserNoMoreValidationRight)
      Parameters:
      pubPK - id of the publication to validate. If publication is always visible, clone is processed.
      userId - id of the user who validate
      force - if true, force to validate publication (bypass pending validations)
      hasUserNoMoreValidationRight - true if the given id represents a user which has no more validation right (deleted user for example)
      Returns:
      true if the validation process is complete (ie all validators have validated)
    • unvalidatePublication

      void unvalidatePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, String refusalMotive, int validationType)
    • suspendPublication

      void suspendPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String refusalMotive, String userId)
    • draftOutPublication

      void draftOutPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile)
      Change publication status from draft to valid (for publisher) or toValidate (for redactor)
      Parameters:
      pubPK - the id of the publication
    • draftOutPublicationWithoutNotifications

      org.silverpeas.core.contribution.publication.model.PublicationDetail draftOutPublicationWithoutNotifications(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile)
    • draftOutPublication

      void draftOutPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK, String userProfile, boolean forceUpdateDate)
    • draftInPublication

      void draftInPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Change publication status from any state to draft
      Parameters:
      pubPK - the id of the publication
    • draftInPublication

      void draftInPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
    • movePublication

      void movePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK to, KmeliaPasteDetail pasteContext)
    • movePublicationInSameApplication

      void movePublicationInSameApplication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK from, KmeliaPasteDetail pasteContext)
    • externalElementsOfPublicationHaveChanged

      void externalElementsOfPublicationHaveChanged(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
      alert that an external elements of publication (wysiwyg, attachment, versioning) has been created, updated or removed
      Parameters:
      pubPK - - id of the publication which contains this external elements
    • sendModificationAlert

      void sendModificationAlert(int modificationScope, org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    • getUserNotification

      org.silverpeas.core.notification.user.UserNotification getUserNotification(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.node.model.NodePK topicPK)
      Send an email to alert users of a publication creation
      Parameters:
      pubPK - the publication id
    • getUserNotification

      org.silverpeas.core.notification.user.UserNotification getUserNotification(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, org.silverpeas.core.contribution.attachment.model.SimpleDocumentPK documentPk, org.silverpeas.core.node.model.NodePK topicPK)
      Send an email to alert users about an attachment
      Parameters:
      pubPK - the publication id
    • getUserNotification

      org.silverpeas.core.notification.user.UserNotification getUserNotification(org.silverpeas.core.node.model.NodePK pk)
      Send a notification to alert users about a folder
      Parameters:
      pk - the folder id
    • deleteAllReadingControlsByPublication

      void deleteAllReadingControlsByPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      delete reading controls to a publication
      Parameters:
      pubPK - the id of a publication
      Since:
      1.0
    • indexKmelia

      void indexKmelia(String componentId)
    • getSilverObjectId

      int getSilverObjectId(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    • deleteSilverContent

      void deleteSilverContent(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    • setModelUsed

      void setModelUsed(String[] models, String instanceId, String nodeId)
    • getModelUsed

      Collection<String> getModelUsed(String instanceId, String nodeId)
    • getAxis

      List<org.silverpeas.core.node.model.NodeDetail> getAxis(String componentId)
      Get the axis on which publications are categorized in the specified component instance.
      Parameters:
      componentId - the unique identifier of a component instance.
      Returns:
      a list of axis as NodeDetail instances.
    • getAxisHeaders

      List<org.silverpeas.core.node.model.NodeDetail> getAxisHeaders(String componentId)
      Get the header of the axis on which publications are categorized in the specified component instance.
      Parameters:
      componentId - the unique identifier of a component instance.
      Returns:
      a list of axis headers as NodeDetail instances.
    • addAxis

      org.silverpeas.core.node.model.NodePK addAxis(org.silverpeas.core.node.model.NodeDetail axis, String componentId)
      Add the given axis into the specified component instance.
      Parameters:
      axis - the axis to add.
      componentId - the unique identifier of the component instance.
      Returns:
      the identifier of the new added axis.
    • updateAxis

      void updateAxis(org.silverpeas.core.node.model.NodeDetail axis, String componentId)
      Update the given axis in the specified component instance.
      Parameters:
      axis - the axis from which its counterpart in the data source will be updated.
      componentId - the unique identifier of a component instance.
    • deleteAxis

      void deleteAxis(String axisId, String componentId)
      Delete the given axis in the specified component instance.
      Parameters:
      axisId - the unique identifier of the axis to delete.
      componentId - the unique identifier of a component instance.
    • getNodeHeader

      org.silverpeas.core.node.model.NodeDetail getNodeHeader(String id, String componentId)
      Get the header of the specified node.
      Parameters:
      id - the unique identifier of a node
      componentId - the unique identifier of the component instance in which the node is.
      Returns:
      a NodeDetail instance.
    • addPosition

      void addPosition(String fatherId, org.silverpeas.core.node.model.NodeDetail position, String componentId, String userId)
      Add position to an axis in the given component instance and for the specified user.
      Parameters:
      fatherId - the identifier of the position that will be the father of the new one.
      position - the position to add.
      componentId - the unique identifier of the component instance.
      userId - the unique identifier of a user.
    • updatePosition

      void updatePosition(org.silverpeas.core.node.model.NodeDetail position, String componentId)
      Update a position in an axis
      Parameters:
      position - the position from which its counterpart in the data source will be updated.
      componentId - the unique identifier of the component instance in which belongs the axis.
    • deletePosition

      void deletePosition(String positionId, String componentId)
      Delete a position in an axis
      Parameters:
      positionId - the unique identifier of the position to delete.
      componentId - the unique identifier of the component instance in which belongs the axis.
    • getPath

      Collection<org.silverpeas.core.node.model.NodeDetail> getPath(String positionId, String componentId)
      Get path of a position in an axis.
      Parameters:
      positionId - the unique identifier of a position.
      componentId - the unique identifier of the component instance in which belongs the axis.
      Returns:
      the path of the position with a NodeDetail instance for each path's node.
    • search

      List<KmeliaPublication> search(List<String> combination, String componentId)
      Get publications categorized in a combination of positions.
      Parameters:
      combination - a list of positions composing the combination.
      componentId - the unique identifier of the component instance in which belongs the combination.
      Returns:
      the publications that satisfy the combination of positions.
    • search

      List<KmeliaPublication> search(List<String> combination, int nbDays, String componentId)
      Get publications categorized in a combination of positions and that are visible or created the given number of days ago.
      Parameters:
      combination - a list of positions composing the combination.
      nbDays - the number of days before today.
      componentId - the unique identifier of the component instance in which belongs the combination.
      Returns:
      the publications that satisfy the combination of positions and the time criteria.
    • getUnbalancedPublications

      Collection<KmeliaPublication> getUnbalancedPublications(String componentId)
      Get publications that aren't categorized on any axis.
      Parameters:
      componentId - the unique identifier of a component instance.
      Returns:
      the uncategorized publications.
    • indexKmax

      void indexKmax(String componentId)
    • getKmaxPublication

      KmeliaPublication getKmaxPublication(String pubId, String currentUserId)
      Get the given publication for the given user.
      Parameters:
      pubId - the unique identifier of a publication.
      currentUserId - the unique identifier of the user for whom the publications are asked.
      Returns:
      the publication as a KmeliaPublication instance.
    • getPublicationCoordinates

      Collection<org.silverpeas.core.node.coordinates.model.Coordinate> getPublicationCoordinates(String pubId, String componentId)
      Get the coordinates for the given publication on the axis of the specified component instance.
      Parameters:
      pubId - the unique identifier of a publication.
      componentId - the unique identifier of the component instance.
      Returns:
      a collection of coordinates
    • addPublicationToCombination

      void addPublicationToCombination(String pubId, List<String> combination, String componentId)
      Add for the given publication a combination of position on the axis of the component instance.
      Parameters:
      pubId - the unique identifier of a publication.
      combination - a list of coordinate identifiers.
      componentId - the unique identifier of the component instance.
    • deletePublicationFromCombination

      void deletePublicationFromCombination(String pubId, String combinationId, String componentId)
      Remove for the given publication the specified combination of positions on the axis of the component instance.
      Parameters:
      pubId - the unique identifier of a publication.
      combinationId - the unique identifier of a combination of positions.
      componentId - the unique identifier of the component instance.
    • createKmaxPublication

      String createKmaxPublication(org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail)
      Create a new publication (only the header, no content) in a Kmax instance.
      Parameters:
      pubDetail - the publication to create.
      Returns:
      the id of the new publication
      Since:
      1.0
      See Also:
      • PublicationDetail
    • getLocations

      Collection<org.silverpeas.core.contribution.publication.model.Location> getLocations(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Gets all the locations of the specified publication; whatever the component instance. If the given publication is a clone, then gets all the locations of the main publication.
      Parameters:
      pubPK - the unique identifier of the publication.
      Returns:
      a collection of the locations of the given publication.
    • getAliases

      Collection<org.silverpeas.core.contribution.publication.model.Location> getAliases(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
      Gets all the aliases of the specified publication, whatever the component instance and without taking into account the publication is a clone or not. If the publication is a clone, then nothing will be returned.
      Parameters:
      pubPK - the unique identifier of the publication.
      Returns:
      a collection of locations that are all the aliases for the given publication.
    • setAliases

      void setAliases(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, List<org.silverpeas.core.contribution.publication.model.Location> locations)
    • addAttachmentToPublication

      void addAttachmentToPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId, String filename, String description, byte[] contents)
    • createTopic

      org.silverpeas.core.node.model.NodeDetail createTopic(String componentId, String topicId, String spaceId, String userId, String name, String description)
    • clonePublication

      String clonePublication(org.silverpeas.core.contribution.publication.model.CompletePublication refPubComplete, org.silverpeas.core.contribution.publication.model.PublicationDetail pubDetail, String nextStatus)
      Clone the given publication. Create new publication based on pubDetail object if not null or CompletePublication otherwise. Original publication will not be modified (except references to clone: cloneId and cloneStatus).
      Parameters:
      pubDetail - If not null, attribute values are set to the clone
      nextStatus - Draft or Clone
      Returns:
      the identifier of the cloned publication.
    • removeContentOfPublication

      void removeContentOfPublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK)
    • getRoot

      org.silverpeas.core.node.model.NodeDetail getRoot(String componentId, String userId)
    • getFolderChildren

      Collection<org.silverpeas.core.node.model.NodeDetail> getFolderChildren(org.silverpeas.core.node.model.NodePK nodePK, String userId)
    • getFolder

      org.silverpeas.core.node.model.NodeDetail getFolder(org.silverpeas.core.node.model.NodePK nodePK, String userId)
      Gets the details about the specified folder. The difference with getNodeHeader(String, String) is that the children are also set as well as other information like the number of publications.
      Parameters:
      nodePK - the unique identifier of the folder.
      userId - the unique identifier of the user for which the folder is asked.
      Returns:
      the NodeDetail instance corresponding to the folder.
    • getExpandedPathToNode

      org.silverpeas.core.node.model.NodeDetail getExpandedPathToNode(org.silverpeas.core.node.model.NodePK pk, String userId)
    • isUserCanWrite

      boolean isUserCanWrite(String componentId, String userId)
    • isUserCanValidate

      boolean isUserCanValidate(String componentId, String userId)
    • isUserCanPublish

      boolean isUserCanPublish(String componentId, String userId)
    • getUserTopicProfile

      String getUserTopicProfile(org.silverpeas.core.node.model.NodePK pk, String userId)
    • deletePublications

      List<String> deletePublications(List<String> publiIds, org.silverpeas.core.node.model.NodePK topicId, String userId)
      Deletes the specified publications located into the given topic. Before a publication is removed, the privileges of the specified user is checked. This user can be the requester or another user endorsing the deletion for the requester. If the topic is the trash folder, then the publications are definitively deleted. Otherwise, they are just moved into the bin.
      Parameters:
      publiIds - a list of local identifier of the publications to delete.
      topicId - the node PK of the topic in which the publications are located.
      userId - the unique identifier of the user for which the deletion is performed.
      Returns:
      the list of the unique identifiers of the actually deleted publications.
    • deletePublication

      void deletePublication(org.silverpeas.core.contribution.publication.model.PublicationPK pubPK, String userId)
      Deletes the specified publication. Before the publication is removed, the privileges of the given user is checked. This user can be the requester or another user endorsing the deletion for the requester. For doing, the profile of the user is checked against the topic in which the publication is originally located. If the topic is the trash folder, then the publication is definitively deleted. Otherwise, it is just moved into the bin.
      Parameters:
      pubPK - the unique identifier of the publication.
      userId - the unique identifier of the user for which the deletion is performed.
    • deleteTopic

      void deleteTopic(@NonNull org.silverpeas.core.node.model.NodePK topic, String userId)
      Deletes the specified topic located into the given parent topic. Before the topic is deleted, the privileges of the specified user is checked. If topic is in the trash folder, then the topic is definitively deleted. Otherwise, it is just moved into the bin.
      Parameters:
      topic - the unique identifier of the topic
      userId - the unique identifier of the user asking the deletion.
    • getUserIdsOfFolder

      List<String> getUserIdsOfFolder(org.silverpeas.core.node.model.NodePK pk)
    • getLastAccess

      List<org.silverpeas.core.silverstatistics.access.model.HistoryObjectDetail> getLastAccess(org.silverpeas.core.contribution.publication.model.PublicationPK pk, org.silverpeas.core.node.model.NodePK nodePK, String excludedUserId, int maxResult)
    • copyNode

      org.silverpeas.core.node.model.NodeDetail copyNode(KmeliaCopyDetail copyDetail)
      Copies the node according to the information provided by the specified copy descriptor.
      Parameters:
      copyDetail - a descriptor giving details about the copy to perform like the node to copy and the destination.
      Returns:
      the copy of the node.
    • copyPublications

      void copyPublications(KmeliaCopyDetail copyDetail)
      Copies all the publications defined in the specified copy descriptor.
      Parameters:
      copyDetail - a descriptor providing information about the publications to copy and the destination of the copy.
    • copyPublication

      org.silverpeas.core.contribution.publication.model.PublicationDetail copyPublication(org.silverpeas.core.contribution.publication.model.PublicationDetail publication, KmeliaCopyDetail copyDetail)
      Copies the specified publication according to the given copy descriptor. In the case the publication is an alias, then the copy adds a new location to the original copy. Otherwise, the publication is well copied.
      Parameters:
      publication - the publication to copy.
      copyDetail - a descriptor providing details about the copy like the destination.
      Returns:
      the copy of the publication or the publication itself in the case of a new location.
    • moveNode

      void moveNode(org.silverpeas.core.node.model.NodePK nodePK, org.silverpeas.core.node.model.NodePK to, KmeliaPasteDetail pasteContext)
    • filterPublications

      List<KmeliaPublication> filterPublications(List<KmeliaPublication> publications, String instanceId, org.silverpeas.core.admin.user.model.SilverpeasRole profile, String userId)
    • userHaveBeenDeleted

      void userHaveBeenDeleted(String userId)
    • getActiveValidatorIds

      List<String> getActiveValidatorIds(org.silverpeas.core.contribution.publication.model.PublicationPK pk)
    • performReminder

      void performReminder(org.silverpeas.core.reminder.Reminder reminder)
      Performs processes about kmelia linked to given reminder.
      If kmelia is not concerned, nothing is performed.
      Parameters:
      reminder - a Reminder instance.
    • deleteClone

      void deleteClone(org.silverpeas.core.contribution.publication.model.PublicationPK pk)
    • getNonVisiblePublications

      List<KmeliaPublication> getNonVisiblePublications(String componentId, String userId)