Supply API to work with the linked node or the link included in a node.

_Package org.exoplatform.services.cms.link.LinkManager_

|| *Method* || *Param* || *Return* || *Description* ||
| *createLink*(Node parent, String linkType, Node target)throws RepositoryException; |{{parent}}: The parent node of the link. {example}{example}  {{linkType}}: The primary node type of the link must be a sub-type of exo:symlink, the default value is "exo:symlink" {example}{example} {{target}}: The target of the link.| {{Node}} |Create a new link that is added to the parent node and return the link. |
| *createLink*(Node parent, Node target)throws RepositoryException; |{{parent}}: The parent node of the link to create. {example}{example} {{target}}: The target of the link. | {{Node}} | Create a new node of type exo:symlink, then add it to the parent node and return the link node. |
| *createLink*(Node parent, String linkType, Node target, String linkName) throws RepositoryException; |{{parent}}: The parent node of the link. {example}{example} {{inkType}}: The primary node type of the link must be a sub-type of exo:symlink, the default value is exo:symlink. {example}{example} {{target}}: The target of the link. {example}{example} {{linkName}}: The name of the link. | {{Node}} | Create a new link that is added to the parent node and return the link.|
| *updateLink*(Node link, Node target)throws RepositoryException; |{{link}}: The link node to update. {example}{example}{{target}}: The new target of the link.  | {{Node}} | Update the target node of the given link.  |
| *getTarget*(Node link, boolean system) throws ItemNotFoundException, RepositoryException; |{{link}}: The node of type exo:symlink. {example}{example} {{system}}: Indicate whether the target node must be retrieved using a session system or user session in case we cannot use the same session as the node link because the target and the link are not in the same workspace. | {{Node}} | Get the target node of the given link. |
| *getTarget*(Node link)throws ItemNotFoundException, RepositoryException; |{{link}}: The node of type exo:symlink.| {{Node}} | Get the target node of the given link using the user. |
| *isTargetReachable*(Node link) throws RepositoryException; | {{link}}: The node of type exo:symlink.| {{boolean}}  | Check if the target node of the given link can be reached using the user session.|
| *isTargetReachable*(Node link, boolean system)throws RepositoryException; |{{link}}: The node of type exo:symlink. {example}{example}  {{system}}| {{boolean}} | Check if the target node of the given link can be reached using the user session. |
| *isLink*(Item item) throws RepositoryException;|{{item}}: The item to test. | {{boolean}} | Indicate whether the given item is a link.  @return <code>true</code>: if the node is a link, <code>false</code> otherwise.  |
| *getTargetPrimaryNodeType*(Node link)throws RepositoryException;|  {{link}}: The node of type exo:symlink. | {{string}} | Return the primary node type of the target.|
| *getAllLinks*(Node targetNode, String linkType, String repoName)throws Exception |{{targetNode}}: The target node to get links. {example}{example} {{linkType}}: The type of link to get. {example}{example} {{repoName}}: The name of the repository.  |{{ List<Node> }} - the list of link of the target node with given type. | Return all links of the given node. (Deprecated)|
| *getAllLinks*(Node targetNode, String linkType, SessionProvider sessionProvider) throws Exception;|{{targetNode}}: The target node to get links. {example}{example} {{linkType}}: The type of the link to get. {example}{example} {{ sessionProvider}}: The session provider | {{ List<Node> }} - the list of link of the target node with given type. | Return all links of the given node.|