/*
Copyright 2013 the original author or authors.
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 io.neba.core.web;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.MessageSourceResolvable;
import org.springframework.context.NoSuchMessageException;
import org.springframework.core.ResolvableType;
import org.springframework.core.env.Environment;
import org.springframework.core.io.Resource;
import org.springframework.web.context.WebApplicationContext;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.Locale;
import java.util.Map;
/**
* @author Olaf Otto
*/
public class WebApplicationContextAdapter implements WebApplicationContext {
private final ApplicationContext wrapped;
private final ServletContext servletContext;
public WebApplicationContextAdapter(ApplicationContext wrapped, ServletContext servletContext) {
this.wrapped = wrapped;
this.servletContext = servletContext;
}
@Override
public String getId() {
return wrapped.getId();
}
@Override
public String getApplicationName() {
return wrapped.getApplicationName();
}
@Override
public String getDisplayName() {
return wrapped.getDisplayName();
}
@Override
public long getStartupDate() {
return wrapped.getStartupDate();
}
@Override
public ApplicationContext getParent() {
return wrapped.getParent();
}
@Override
public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException {
return wrapped.getAutowireCapableBeanFactory();
}
@Override
public Environment getEnvironment() {
return wrapped.getEnvironment();
}
@Override
public boolean containsBeanDefinition(String beanName) {
return wrapped.containsBeanDefinition(beanName);
}
@Override
public int getBeanDefinitionCount() {
return wrapped.getBeanDefinitionCount();
}
@Override
public String[] getBeanDefinitionNames() {
return wrapped.getBeanDefinitionNames();
}
@Override
public String[] getBeanNamesForType(ResolvableType type) {
return wrapped.getBeanNamesForType(type);
}
@Override
public String[] getBeanNamesForType(Class<?> type) {
return wrapped.getBeanNamesForType(type);
}
@Override
public String[] getBeanNamesForType(Class<?> type, boolean includeNonSingletons, boolean allowEagerInit) {
return wrapped.getBeanNamesForType(type, includeNonSingletons, allowEagerInit);
}
@Override
public <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException {
return wrapped.getBeansOfType(type);
}
@Override
public <T> Map<String, T> getBeansOfType(Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException {
return wrapped.getBeansOfType(type, includeNonSingletons, allowEagerInit);
}
@Override
public String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType) {
return wrapped.getBeanNamesForAnnotation(annotationType);
}
@Override
public Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType) throws BeansException {
return wrapped.getBeansWithAnnotation(annotationType);
}
@Override
public <A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType) throws NoSuchBeanDefinitionException {
return wrapped.findAnnotationOnBean(beanName, annotationType);
}
@Override
public Object getBean(String name) throws BeansException {
return wrapped.getBean(name);
}
@Override
public <T> T getBean(String name, Class<T> requiredType) throws BeansException {
return wrapped.getBean(name, requiredType);
}
@Override
public <T> T getBean(Class<T> requiredType) throws BeansException {
return wrapped.getBean(requiredType);
}
@Override
public Object getBean(String name, Object... args) throws BeansException {
return wrapped.getBean(name, args);
}
@Override
public <T> T getBean(Class<T> requiredType, Object... args) throws BeansException {
return wrapped.getBean(requiredType, args);
}
@Override
public boolean containsBean(String name) {
return wrapped.containsBean(name);
}
@Override
public boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
return wrapped.isSingleton(name);
}
@Override
public boolean isPrototype(String name) throws NoSuchBeanDefinitionException {
return wrapped.isPrototype(name);
}
@Override
public boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException {
return wrapped.isTypeMatch(name, typeToMatch);
}
@Override
public boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException {
return wrapped.isTypeMatch(name, typeToMatch);
}
@Override
public Class<?> getType(String name) throws NoSuchBeanDefinitionException {
return wrapped.getType(name);
}
@Override
public String[] getAliases(String name) {
return wrapped.getAliases(name);
}
@Override
public BeanFactory getParentBeanFactory() {
return wrapped.getParentBeanFactory();
}
@Override
public boolean containsLocalBean(String name) {
return wrapped.containsLocalBean(name);
}
@Override
public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
return wrapped.getMessage(code, args, defaultMessage, locale);
}
@Override
public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
return wrapped.getMessage(code, args, locale);
}
@Override
public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
return wrapped.getMessage(resolvable, locale);
}
@Override
public void publishEvent(ApplicationEvent event) {
wrapped.publishEvent(event);
}
@Override
public void publishEvent(Object event) {
wrapped.publishEvent(event);
}
@Override
public Resource[] getResources(String locationPattern) throws IOException {
return wrapped.getResources(locationPattern);
}
@Override
public Resource getResource(String location) {
return wrapped.getResource(location);
}
@Override
public ClassLoader getClassLoader() {
return wrapped.getClassLoader();
}
@Override
public ServletContext getServletContext() {
return this.servletContext;
}
}