/* * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * * This file is part of jAPS software. * jAPS is a free software; * you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2. * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * */ package com.agiletec.plugins.jacms.aps.system.services.resource; import java.util.Collection; import java.util.List; import com.agiletec.aps.system.exception.ApsSystemException; import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceDataBean; import com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface; /** * Interfaccia base per i servizi gestori tipi di risorse (immagini, audio, video, etc..). * @author W.Ambu - E.Santoboni */ public interface IResourceManager { /** * Crea una nuova istanza di un tipo di risorsa del tipo richiesto. Il nuovo * tipo di risorsa è istanziato mediante clonazione del prototipo corrispondente. * @param typeCode Il codice del tipo di risorsa richiesto, come definito in configurazione. * @return Il tipo di risorsa istanziato (vuoto). */ public ResourceInterface createResourceType(String typeCode); /** * Restituisce la lista delle chiavi dei tipi risorsa presenti nel sistema. * @return La lista delle chiavi dei tipi risorsa esistenti. */ public List<String> getResourceTypeCodes(); /** * Salva una risorsa nel db con incluse nel filesystem, indipendentemente dal tipo. * @param bean L'oggetto detentore dei dati della risorsa da inserire. * @return la risorsa aggiunta. * @throws ApsSystemException in caso di errore. */ public ResourceInterface addResource(ResourceDataBean bean) throws ApsSystemException; /** * Salva una risorsa nel db, indipendentemente dal tipo. * @param resource La risorsa da salvare. * @throws ApsSystemException in caso di errore. */ public void addResource(ResourceInterface resource) throws ApsSystemException; /** * Aggiorna una risorsa nel db. * @param resource La risorsa da modificare. * @throws ApsSystemException in caso di errore. */ public void updateResource(ResourceInterface resource) throws ApsSystemException; /** * Aggiorna una risorsa nel db. * @param bean L'oggetto detentore dei dati della risorsa da modificare. * @throws ApsSystemException in caso di errore. */ public void updateResource(ResourceDataBean bean) throws ApsSystemException; /** * 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. * @return La lista di identificativi di risorse. * @throws ApsSystemException In caso di errore. */ public List<String> searchResourcesId(String type, String text, String categoryCode, Collection<String> groupCodes) throws ApsSystemException; /** * 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. * @return La lista di identificativi di risorse. * @throws ApsSystemException In caso di errore. */ public List<String> searchResourcesId(String type, String text, String filename, String categoryCode, Collection<String> groupCodes) throws ApsSystemException; /** * Restituisce la risorsa con l'id specificato. * @param id L'identificativo della risorsa da caricare. * @return La risorsa cercata. null se non vi è nessuna risorsa con l'identificativo immesso. * @throws ApsSystemException in caso di errore nell'accesso al db. */ public ResourceInterface loadResource(String id) throws ApsSystemException; /** * Cancella una risorsa dal db ed i file di ogni istanza dal filesystem. * @param resource La risorsa da cancellare. * @throws ApsSystemException in caso di errore nell'accesso al db. */ public void deleteResource(ResourceInterface resource) throws ApsSystemException; /** * Reload the master file name to all Resources. * This method is used to improve the porting from jAPS 2.0.x to version 2.2.x * @throws ApsSystemException In case of error */ public void refreshMasterFileNames() throws ApsSystemException; /** * Refresh all the instance (not the "main" instance) of resources of the given type * @param resourceTypeCode The type of the resources to refresh * @throws ApsSystemException In case of error. */ public void refreshResourcesInstances(String resourceTypeCode) throws ApsSystemException; /** * Return the service status id. * @return The service status id. */ public int getStatus(); public static final int STATUS_READY = 0; public static final int STATUS_RELOADING_RESOURCE_MAIN_FILENAME_IN_PROGRESS = 1; public static final int STATUS_RELOADING_RESOURCE_INSTANCES_IN_PROGRESS = 2; }