001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.runtime.config;
020
021import java.net.MalformedURLException;
022import java.net.URL;
023import java.util.Map;
024
025import lucee.loader.engine.CFMLEngine;
026import lucee.runtime.CFMLFactory;
027import lucee.runtime.security.SecurityManager;
028
029/**
030 * Config for the server
031 */
032public interface ConfigServer extends Config {
033
034    /**
035     * @return returns all config webs
036     */
037    public abstract ConfigWeb[] getConfigWebs();
038
039    /**
040     * @param relpath
041     * @return returns config web matching given relpath
042     */
043    public abstract ConfigWeb getConfigWeb(String relpath);
044
045    /**
046     * @return Returns the contextes.
047     */
048    public abstract Map<String,CFMLFactory> getJSPFactoriesAsMap();
049
050    /**
051     * @param id
052     * @return returns SecurityManager matching config
053     */
054    public abstract SecurityManager getSecurityManager(String id);
055
056    /**
057     * is there a individual security manager for given id
058     * @param id for the security manager
059     * @return returns SecurityManager matching config
060     */
061    public abstract boolean hasIndividualSecurityManager(String id);
062
063    /**
064     * @return Returns the securityManager.
065     */
066    public abstract SecurityManager getDefaultSecurityManager();
067
068    /**
069     * @param updateType The updateType to set.
070     */
071    public abstract void setUpdateType(String updateType);
072
073    /**
074     * @param updateLocation The updateLocation to set.
075     */
076    public abstract void setUpdateLocation(URL updateLocation);
077
078    /**
079     * @param strUpdateLocation The updateLocation to set.
080     * @throws MalformedURLException 
081     */
082    public abstract void setUpdateLocation(String strUpdateLocation)
083            throws MalformedURLException;
084
085    /**
086     * @param strUpdateLocation The updateLocation to set.
087     * @param defaultValue 
088     */
089    public abstract void setUpdateLocation(String strUpdateLocation,
090            URL defaultValue);
091    
092        /**
093         * @return the configListener
094         */
095        public ConfigListener getConfigListener();
096
097        /**
098         * @param configListener the configListener to set
099         */
100        public void setConfigListener(ConfigListener configListener);
101
102        public RemoteClient[] getRemoteClients();
103
104    public abstract CFMLEngine getCFMLEngine();
105
106}