/* * 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.plugins.jacms.aps.system.services.resource; import java.util.Collection; import java.util.List; import com.agiletec.aps.system.common.FieldSearchFilter; import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface; import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceRecordVO; /** * Interfaccia base per i Data Access Object * degli oggetti risorsa (AbstractResource). * @author E.Santoboni - W.Ambu */ public interface IResourceDAO { /** * Carica una risorsa nel db. * @param resource La risorsa da caricare nel db. */ public void addResource(ResourceInterface resource); /** * Aggiorna una risorsa nel database. * @param resource La risorsa da aggiornare nel db. */ public void updateResource(ResourceInterface resource); /** * Cancella una risorsa dal db. * @param id L'identificativo della risorsa da cancellare. */ public void deleteResource(String id); /** * Carica una lista di identificativi di risorse * in base al tipo, ad una parola chiave e dalla categoria della risorsa. * @param type Tipo di risorsa da cercare. * @param text Testo immesso per il raffronto con la descrizione della risorsa. null o * stringa vuota nel caso non si voglia ricercare le risorse per parola chiave. * @param categoryCode Il codice della categoria delle risorse. null o * stringa vuota nel caso non si voglia ricercare le risorse per categoria. * @param groupCodes I codici dei gruppi utenti consentiti tramite il quale * filtrare le risorse. Nel caso che la collezione di codici sia nulla o vuota, * non verrà eseguito la selezione per gruppi. * @return La lista di identificativi di risorse. */ public List<String> searchResourcesId(String type, String text, String categoryCode, Collection<String> groupCodes); /** * Carica una lista di identificativi di risorse * in base al tipo, ad una parola chiave e dalla categoria della risorsa. * @param type Tipo di risorsa da cercare. * @param text Testo immesso per il raffronto con la descrizione della risorsa. null o * stringa vuota nel caso non si voglia ricercare le risorse per parola chiave. * @param filename Testo immesso per il raffronto con il nome del file della risorsa. null o * stringa vuota nel caso non si voglia ricercare le risorse per nome file. * @param categoryCode Il codice della categoria delle risorse. null o * stringa vuota nel caso non si voglia ricercare le risorse per categoria. * @param groupCodes I codici dei gruppi utenti consentiti tramite il quale * filtrare le risorse. Nel caso che la collezione di codici sia nulla o vuota, * non verrà eseguito la selezione per gruppi. * @return La lista di identificativi di risorse. */ public List<String> searchResourcesId(String type, String text, String filename, String categoryCode, Collection<String> groupCodes); public List<String> searchResourcesId(FieldSearchFilter[] filters, String categoryCode, Collection<String> groupCodes); /** * Carica un record di risorse in funzione dell'idRisorsa. Questo record è * necessario per l'estrazione della risorse in oggetto tipo AbstractResource * da parte del ResourceManager. * @param id L'identificativo della risorsa. * @return Il record della risorsa. */ public ResourceRecordVO loadResourceVo(String id); /* ESTENSIONE SPOSTAMENTO NODI */ public void updateResourceRelations(ResourceInterface resource); }