All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tiles.request.jakarta.servlet.ServletApplicationContext Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2023 Web-Legacy
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.tiles.request.jakarta.servlet;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Map;

import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.ApplicationResource;
import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
import org.apache.tiles.request.collection.ScopeMap;
import org.apache.tiles.request.jakarta.servlet.extractor.ApplicationScopeExtractor;
import org.apache.tiles.request.jakarta.servlet.extractor.InitParameterExtractor;
import org.apache.tiles.request.locale.URLApplicationResource;

import jakarta.servlet.ServletContext;

/**
 * Servlet-based implementation of the TilesApplicationContext interface.
 *
 * 

Copied from Apache tiles-request-servlet 1.0.7 and adapted for * Jakarta EE 9.

*/ public class ServletApplicationContext implements ApplicationContext { /** * The servlet context to use. */ private ServletContext servletContext; /** * The lazily instantiated {@code Map} of application scope attributes. */ private Map applicationScope = null; /** * The lazily instantiated {@code Map} of context initialization parameters. */ private Map initParam = null; /** * Creates a new instance of ServletTilesApplicationContext. * * @param servletContext The servlet context to use. */ public ServletApplicationContext(ServletContext servletContext) { this.servletContext = servletContext; } /** * Returns the servlet context to use. * * @return the servlet context to use */ public Object getContext() { return servletContext; } /** * Returns the context map from application scope. * * @return the context map from application scope */ public Map getApplicationScope() { if (applicationScope == null && servletContext != null) { applicationScope = new ScopeMap( new ApplicationScopeExtractor(servletContext)); } return applicationScope; } /** * Return an immutable Map that maps context application initialization * parameters to their values. * * @return initialization parameters */ public Map getInitParams() { if (initParam == null && servletContext != null) { initParam = new ReadOnlyEnumerationMap( new InitParameterExtractor(servletContext)); } return initParam; } /** * Return the application resource mapped to the specified path. * * @param localePath path to the desired resource, including the Locale * suffix. * * @return the first located resource which matches the given path or null * if no such resource exists. */ public ApplicationResource getResource(String localePath) { try { URL url = servletContext.getResource(localePath); if (url != null) { return new URLApplicationResource(localePath, url); } else { return null; } } catch (MalformedURLException e) { return null; } } /** * Return a localized version of an ApplicationResource. * * @param base the ApplicationResource. * @param locale the desired Locale. * * @return the first located resource which matches the given path or null * if no such resource exists. */ public ApplicationResource getResource(ApplicationResource base, Locale locale) { try { URL url = servletContext.getResource(base.getLocalePath(locale)); if (url != null) { return new URLApplicationResource(base.getPath(), locale, url); } else { return null; } } catch (MalformedURLException e) { return null; } } /** * Return the application resources mapped to the specified path. * * @param path to the desired resource. * * @return all resources which match the given path. */ public Collection getResources(String path) { ArrayList resources = new ArrayList(); resources.add(getResource(path)); return resources; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy