Taxonomy service is used to work with taxonomies. In this service, there are many functions which enable you to add, find, delete taxonomies from a node.

|| *Method* || *Return* || *Prototype*   || *Description* ||
| *getTaxonomyTree*| {{Node}}  | {{getTaxonomyTree(String repository, String taxonomyName, boolean system) throws RepositoryException;}} {example}{example}    {example}{example} | Returns the root node of the given taxonomy tree {example}{example}     {example}{example}     @param repository: The name of repository {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param system: Indicates whether the nodes must be retrieved using a  session system or user session {example}{example}     @throws RepositoryException: if the taxonomy tree could not be found |
| *getTaxonomyTree* | {{Node}} {example}{example} | {{getTaxonomyTree(String repository, String taxonomyName) throws RepositoryException;}} {example}{example}   {example}{example} | Returns the root node of the given taxonomy tree with the user session {example}{example}  {example}{example}     @param repository: The name of repository {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @throws RepositoryException: if the taxonomy tree could not be found |
| *getAllTaxonomyTrees* | {{List<Node>}} | {{getAllTaxonomyTrees(String repository, boolean system) throws RepositoryException;}} {example}{example}  {example}{example} | Returns the list of all the root nodes of the taxonomy tree available   {example}{example}  {example}{example}     @param repository: The name of repository {example}{example}     @param system: Indicates whether the nodes must be retrieved using a  session system or user session {example}{example}     @throws RepositoryException: if the taxonomy trees could not be found |
| *getAllTaxonomyTrees* | {{List<Node>}} | {{getAllTaxonomyTrees(String repository) throws RepositoryException;}} {example}{example}{example}{example} | Returns the list of all the root nodes of the taxonomy tree available  with the user session {example}{example}     {example}{example}     @param repository: The name of repository {example}{example}     @throws RepositoryException: if the taxonomies could not be found |
| *hasTaxonomyTree* | {{boolean}} {example}{example} | {{hasTaxonomyTree(String repository, String taxonomyName) throws RepositoryException;}} {example}{example}  | Checks if a taxonomy tree with the given name has already been defined {example}{example}     {example}{example}     @param repository: The name of repository {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @throws RepositoryException: if the taxonomy name could not be  checked |
| *addTaxonomyTree* | {{void}} | {{addTaxonomyTree(Node taxonomyTree) throws RepositoryException, TaxonomyAlreadyExistsException;}} {example}{example}  {example}{example} | Defines a node as a new taxonomy tree {example}{example}     {example}{example}     @param taxonomyTree: The taxonomy tree to define {example}{example}     @throws TaxonomyAlreadyExistsException: if a taxonomy with the same  name has already been defined {example}{example}     @throws RepositoryException: if the taxonomy tree could not be  defined |
| *updateTaxonomyTree* | {{void}} {example}{example} | {{updateTaxonomyTree(String taxonomyName, Node taxonomyTree) throws RepositoryException;}} {example}{example}  {example}{example} | Re-defines a node as a taxonomy tree {example}{example}     {example}{example}     @param taxonomyName: The name of the taxonomy to update {example}{example}     @param taxonomyTree: The taxonomy tree to define {example}{example}     @throws RepositoryException: if the taxonomy tree could not be  updated |
| *removeTaxonomyTree* | {{void}} {example}{example} | {{removeTaxonomyTree(String taxonomyName) throws RepositoryException;}} {example}{example}  {example}{example} | Remove the taxonomy tree definition {example}{example}     {example}{example}     @param taxonomyName: The name of the taxonomy to remove {example}{example}     @throws RepositoryException: if the taxonomy tree could not be  removed |
| *addTaxonomyNode* | {{void}} {example}{example} | {{addTaxonomyNode(String repository, String  workspace, String parentPath,  String taxoNodeName, String creator) throws RepositoryException,   TaxonomyNodeAlreadyExistsException; }}| Adds a new taxonomy node at the given location {example}{example}     {example}{example}     @param repository: The name of the repository {example}{example}     @param workspace: The name of the workspace {example}{example}     @param parentPath: The place where the taxonomy node will be added {example}{example}     @param taxoNodeName :The name of taxonomy node {example}{example}     @param creator: The name of the user creating this node {example}{example}     @throws TaxonomyNodeAlreadyExistsException: if a taxonomy node with  the same name has already been added {example}{example}     @throws RepositoryException: if the taxonomy node could not be added |
| *removeTaxonomyNode* | {{void}} | {{removeTaxonomyNode(String repository, String workspace, String  absPath) throws RepositoryException;}} {example}{example}  {example}{example} | Remove the taxonomy node located at the given absolute path {example}{example}     {example}{example}     @param repository: The name of the repository {example}{example}     @param workspace: The name of the workspace {example}{example}     @param absPath: The absolute path of the taxonomy node to remove {example}{example}     @throws RepositoryException: if the taxonomy node could not be  removed |
| *moveTaxonomyNode* | {{void}} | {{moveTaxonomyNode(String repository, String workspace, String srcPath,  String destPath, String type) throws RepositoryException; }}{example}{example}  {example}{example} | Copies or cuts the taxonomy node from source path to destination path.  The parameter type indicates if the node must be cut or copied {example}{example}     {example}{example}     @param repository: The name of the repository {example}{example}     @param workspace: The name of the workspace {example}{example}     @param srcPath: The source path of this taxonomy {example}{example}     @param destPath: The destination path of the taxonomy {example}{example}     @param type: If *type* is equal to *cut*, the process will be cut. If  *type* is equal to *copy*, the process will be copied {example}{example}     @throws RepositoryException: if the taxonomy node could not be moved |
| *hasCategories* | {{boolean}} | {{hasCategories(Node node, String taxonomyName) throws  RepositoryException;}} {example}{example}{example}{example} | Returns true if the given node has categories in the given taxonomy {example}{example}     {example}{example}     @param node: The node to check {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @throws RepositoryException: if categories cannot be checked |
| *hasCategories* | {{boolean}} | {{hasCategories(Node node, String taxonomyName, boolean system) throws  RepositoryException;}} {example}{example}  {example}{example} | Return true if the given node has categories in the given taxonomy {example}{example}     {example}{example}     @param node: The node to check {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param system: check system provider or not {example}{example}     @throws RepositoryException: if categories cannot be checked |
| *getCategories* | {{List<Node>}} | {{getCategories(Node node, String taxonomyName) throws  RepositoryException;}} {example}{example}  {example}{example} | Returns all the paths of the categories (relative to the root node of  the given taxonomy) which have been associated to the given node for the  given taxonomy {example}{example}     {example}{example}     @param node: The node for which we seek the categories {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @throws RepositoryException: if the categories cannot be retrieved |
| *getCategories*| {{List<Node>}} | {{getCategories(Node node, String taxonomyName, boolean system) throws  RepositoryException; }}{example}{example}  {example}{example} | Returns all the paths of the categories(relative to the root node of the  given taxonomy) which have been associated to the given node for the  given taxonomy {example}{example}     {example}{example}     @param node: The node for which we seek the categories {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param system {example}{example}     @throws RepositoryException: if the categories cannot be retrieved |
| *getAllCategories* | {{List<Node>}} | {{getAllCategories(Node node) throws RepositoryException;}} {example}{example}  {example}{example} | Returns all the paths of the categories which have been associated to  the given node {example}{example}     @param node:  The node for which we seek the categories {example}{example}     @throws RepositoryException |
| *getAllCategories* | {{List<Node>}} | {{getAllCategories(Node node, boolean system) throws RepositoryException;}} {example}{example}  {example}{example} | Returns all the paths of the categories which have been associated to  the given node {example}{example}     @param node:  The node for which we seek the categories {example}{example}     @param system: check system provider or not {example}{example}     @throws RepositoryException |
| *removeCategory* | {{void}} | {{removeCategory(Node node, String taxonomyName, String categoryPath)  throws RepositoryException;}} {example}{example}  {example}{example} | Removes a category to the given node {example}{example}     {example}{example}     @param node: The node for which we remove the category {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPath: The path of the category relative to the root  node of the given taxonomy {example}{example}     @throws RepositoryException: if the category cannot be removed |
| *removeCategory* | {{void}} {example}{example} | {{removeCategory(Node node, String taxonomyName, String categoryPath,  boolean system) throws RepositoryException; }}{example}{example}{example}{example} | Removes a category to the given node {example}{example}     {example}{example}     @param node: The node for which we remove the category {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPath: The path of the category relative to the root  node of the given taxonomy {example}{example}     @param system: check system provider or not {example}{example}     @throws RepositoryException: if the category cannot be removed |
| *addCategories* | {{void}} | {{addCategories(Node node, String taxonomyName, String\[\] categoryPaths)  throws RepositoryException; }}{example}{example}  {example}{example} | Adds several categories to the given node {example}{example}     {example}{example}     @param node: The node for which we add the categories {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPaths: An array of category paths relative to the  given taxonomy {example}{example}     @throws RepositoryException: if the categories cannot be added |
| *addCategories* | {{void}} {example}{example} | {{addCategories(Node node, String taxonomyName, String\[\] categoryPaths,  boolean system) throws RepositoryException;}} {example}{example}  {example}{example} | Adds several categories to the given node {example}{example}     {example}{example}     @param node: The node for which we add the categories {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPaths: An array of category paths relative to the  given taxonomy {example}{example}     @param system: check system provider or not {example}{example}     @throws RepositoryException: if the categories cannot be added |
| *addCategory* | {{void}} {example}{example} | {{addCategory(Node node, String taxonomyName, String categoryPath) throws  RepositoryException;}} {example}{example}{example}{example} | Adds a new category path to the given node {example}{example}     {example}{example}     @param node: the node for which we add the category {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPath: The path of the category relative to the given  taxonomy {example}{example}     @throws RepositoryException: if the category cannot be added |
| *addCategory* | {{void}} {example}{example} | {{addCategory(Node node, String taxonomyName, String categoryPath,  boolean system) throws RepositoryException;}} {example}{example}  {example}{example} | Adds a new category path to the given node {example}{example}     {example}{example}     @param node: the node for which we add the category {example}{example}     @param taxonomyName: The name of the taxonomy {example}{example}     @param categoryPath: The path of the category relative to the given  taxonomy {example}{example}     @param system: check system provider or not {example}{example}     @throws RepositoryException: if the category cannot be added |
| *getTaxonomyTreeDefaultUserPermission* | {{Map<String, String\[\]>}} {example}{example} | {{getTaxonomyTreeDefaultUserPermission();}} {example}{example}{example}{example} | get default permission for the user in taxonomy tree |
| *addTaxonomyPlugin* | {{void}}| {{addTaxonomyPlugin(ComponentPlugin plugin); }}{example}{example}  {example}{example} | Add a new taxonomy plugin to the service {example}{example}  @param plugin: The plugin to add |
| *init* | {{void}} {example}{example}| {{init(String repository) throws Exception; }}| Initialize all taxonomy plugins that have been already configured in .xml  files {example}{example} @param repository: The name of repository {example}{example}     @see TaxonomyPlugin {example}{example}     @throws Exception |
