package org.jboss.resteasy.links.impl; import javax.el.BeanELResolver; import javax.el.ELContext; import javax.el.ELResolver; import java.beans.FeatureDescriptor; import java.util.Iterator; public class BaseELResolver extends ELResolver { private final ELResolver delegateResolver; private final Object base; public BaseELResolver(Object base) { this.base = base; this.delegateResolver = new BeanELResolver(true); } @Override public Class<?> getCommonPropertyType(ELContext context, Object base) { return null; } @Override public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) { return null; } @Override public Class<?> getType(ELContext context, Object base, Object property) { return null; } @Override public Object getValue(ELContext context, Object base, Object property) { if (base == null){ if("this".equals(property)){ context.setPropertyResolved(true); return this.base; } return delegateResolver.getValue(context, this.base, property); } return null; } @Override public boolean isReadOnly(ELContext context, Object base, Object property) { return true; } @Override public void setValue(ELContext context, Object base, Object property, Object value) { } }