/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.agiletec.aps.system.services.category;
import java.util.List;
import com.agiletec.aps.system.services.lang.ILangManager;
/**
* Interfaccia di base per le classi DAO di gestione Categorie.
* @author E.Santoboni
*/
public interface ICategoryDAO {
/**
* Carica la lista delle categorie inserite nel sistema.
* @param langManager Il manager delle lingue.
* @return La lista delle categorie inserite nel sistema.
*/
public List<Category> loadCategories(ILangManager langManager);
/**
* Cancella la categoria corrispondente al codice immesso.
* @param code Il codice relativo alla categoria da cancellare.
*/
public void deleteCategory(String code);
/**
* Inserisce una nuova Categoria.
* @param category La nuova Categoria da inserire.
*/
public void addCategory(Category category);
/**
* Aggiorna una categoria sul db.
* @param category La categoria da aggiornare.
*/
public void updateCategory(Category category);
/**
* Move a category under a a new parent node
* @param currentCategory category to move
* @param newParent the new parent
*/
public void moveCategory(Category currentCategory, Category newParent);
}