/** * Copyright (C) 2009 eXo Platform SAS. * * This 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 software 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. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.application.gadget; import java.util.Comparator; import java.util.List; /** * This service is used to register the gadget with portal. Developer uses this service to manage list of gadgets. * <p> * Created by The eXo Platform SAS<br/> * Jun 18, 2008<br/> * </p> */ public interface GadgetRegistryService { /** * Deploy a set of gadgets. * * @param gadgets the gadgets to deploy */ void deploy(Iterable<GadgetImporter> gadgets); /** * Return Gadget object retrieved from database by its name. * * @param name the name of gadget * @return Gadget object or null if not found * @throws Exception */ Gadget getGadget(String name); /** * Gets all of available gadgets from the database. * * @return a list of gadgets * @throws Exception */ List<Gadget> getAllGadgets() throws Exception; /** * Gets all of available gadgets from the database.</br> The list of gadgets are sorted. * * @param sortComparator The comparator is used to control the order of gadgets * @return a list of gadgets * @throws Exception */ List<Gadget> getAllGadgets(Comparator<Gadget> sortComparator); /** * Adds the gadget to the database. If the gadget is existing, it will be updated. * * @param gadget - Gadget that is saved to database, must not be null * @throws Exception */ void saveGadget(Gadget gadget) throws Exception; /** * Removes the gadget from the database. If can't find Gadget with that name in database, this will throw Exception * * @param name the name of gadget * @throws Exception */ void removeGadget(String name); /** * Always return true * * @param username */ boolean isGadgetDeveloper(String username); /** * Return Country name, it's set in xml config of GadgetRegistryService */ String getCountry(); String getLanguage(); String getModuleId(); String getHostName(); /** * Get the URL of gadget from gadget definition. There are 2 kind of gadget: * <p> * <ul> * <li>Local gadget: Gadget definition and resource are stored in JCR workspace. This gadget content can be also accessed by * WebDAV * <li>Remote gadget: An absolute link to gadget definition * </ul> * * @param gadgetName * @return link to local gadget definition stored in JCR or URL to remote gadget */ String getGadgetURL(String gadgetName); }