001    package org.apache.myfaces.tobago.config;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    import org.apache.myfaces.tobago.application.ProjectStage;
021    import org.apache.myfaces.tobago.context.Theme;
022    
023    import javax.faces.context.FacesContext;
024    import javax.servlet.ServletContext;
025    import java.util.List;
026    
027    public abstract class TobagoConfig {
028    
029      public static final String TOBAGO_CONFIG = "org.apache.myfaces.tobago.config.TobagoConfig";
030    
031      public static TobagoConfig getInstance(FacesContext facesContext) {
032        return (TobagoConfig) facesContext.getExternalContext().getApplicationMap().get(TOBAGO_CONFIG);
033      }
034    
035      public static TobagoConfig getInstance(ServletContext servletContext) {
036        return (TobagoConfig) servletContext.getAttribute(TOBAGO_CONFIG);
037      }
038    
039      public abstract Theme getTheme(String name);
040    
041      public abstract List<Theme> getSupportedThemes();
042    
043    /*
044      // todo: should this be part of the api?
045      public abstract void addResourceDir(String resourceDir);
046    */
047    
048    /*
049      // todo: should this be part of the api?
050      public abstract List<String> getResourceDirs();
051    */
052    
053      /**
054       * @deprecated since 1.5.0
055       */
056      @Deprecated
057      public abstract boolean isAjaxEnabled();
058    
059      public abstract Theme getDefaultTheme();
060    
061    /*
062      // todo: should this be part of the api?
063      public abstract RenderersConfig getRenderersConfig();
064    */
065    
066      public abstract ProjectStage getProjectStage();
067    
068    /*
069      // todo: should this be part of the api?
070      public abstract List<Theme> getThemeDefinitions();
071    */
072    
073      public abstract boolean isCreateSessionSecret();
074    
075      public abstract boolean isCheckSessionSecret();
076    
077    }