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;}} | Returns the root node of the given taxonomy tree. {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;}}| Returns the root node of the given taxonomy tree with the user session. {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;}}  | Returns the list of all the root nodes of the taxonomy tree available.   {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;}}  | Returns the list of all the root nodes of the taxonomy tree available  with the user session. {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;}}| Checks if a taxonomy tree with the given name has already been defined. {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;}}| Defines a node as a new taxonomy tree. {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;}}| Re-defines a node as a taxonomy tree. {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} @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} | Removes the taxonomy node located at the given absolute path. {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} @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} @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} @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}  @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}  @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}  @param node: The node from 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}  @param node: The node from 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 to 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}     @param node: The node to 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}    @param node: the node to 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}   @param node: the node to 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} | Gets the default permission for the user in taxonomy tree. |
| *addTaxonomyPlugin* | {{void}}| {{addTaxonomyPlugin(ComponentPlugin plugin); }}{example}{example}  {example}{example} | Adds a new taxonomy plugin to the service. {example}{example}  @param plugin: The plugin to adds |
| *init* | {{void}} {example}{example}| {{init(String repository) throws Exception; }}| Initializes 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. |
 | *getCategoryNameLength* | {{String}} | {{getCategoryNameLength();}} | Gets the limited length of the category name. |
