/*
* Copyright 2017 OmniFaces
*
* 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.omnifaces.el;
import java.beans.FeatureDescriptor;
import java.util.Iterator;
import javax.el.ELContext;
import javax.el.ELResolver;
import javax.faces.FacesWrapper;
/**
* <p>Provides a simple implementation of {@link ELResolver} that can
* be sub-classed by developers wishing to provide specialized behavior
* to an existing {@link ELResolver} instance. The default
* implementation of all methods is to call through to the wrapped
* {@link ELResolver}.</p>
*
* <p>Usage: extend this class and override {@link #getWrapped} to
* return the instance we are wrapping, or provide this instance to the overloaded constructor.</p>
*
* @author Arjan Tijms
*/
public class ELResolverWrapper extends ELResolver implements FacesWrapper<ELResolver> {
private ELResolver elResolver;
public ELResolverWrapper() {
//
}
public ELResolverWrapper(ELResolver elResolver) {
this.elResolver = elResolver;
}
@Override
public ELResolver getWrapped() {
return elResolver;
}
@Override
public Object getValue(ELContext context, Object base, Object property) {
return getWrapped().getValue(context, base, property);
}
@Override
public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params) {
return getWrapped().invoke(context, base, method, paramTypes, params);
}
@Override
public Class<?> getType(ELContext context, Object base, Object property) {
return getWrapped().getType(context, base, property);
}
@Override
public void setValue(ELContext context, Object base, Object property, Object value) {
getWrapped().setValue(context, base, property, value);
}
@Override
public boolean isReadOnly(ELContext context, Object base, Object property) {
return getWrapped().isReadOnly(context, base, property);
}
@Override
public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
return getWrapped().getFeatureDescriptors(context, base);
}
@Override
public Class<?> getCommonPropertyType(ELContext context, Object base) {
return getWrapped().getCommonPropertyType(context, base);
}
}