ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/jakarta/el/StandardELContext.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/jakarta/el/StandardELContext.java
Status
scanned
Type
file
Name
StandardELContext.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
6562 (6.4 KB)
MD5
3f440559634e0e371d7f0214a8b13d6b
SHA1
98cd89430c1cf649f4c9a762b0aa9e7a799a1b1a
SHA256
d706cc95e4a3b367cd49cef04ff18e6a393ca6e9584e1ac6c7168e6faef9f6ed
SHA512

      
    
SHA1_git
fe7ceb0f3e6db9df4f1a3c3bb5b3c271d93479d2
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
StandardELContext.java | 6.4 KB |

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 jakarta.el; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; /** * @since EL 3.0 */ public class StandardELContext extends ELContext { private final ELContext wrappedContext; private final VariableMapper variableMapper; private final FunctionMapper functionMapper; private final CompositeELResolver standardResolver; private final CompositeELResolver customResolvers; private final Map<String,Object> localBeans = new HashMap<>(); public StandardELContext(ExpressionFactory factory) { wrappedContext = null; variableMapper = new StandardVariableMapper(); functionMapper = new StandardFunctionMapper(factory.getInitFunctionMap()); standardResolver = new CompositeELResolver(); customResolvers = new CompositeELResolver(); ELResolver streamResolver = factory.getStreamELResolver(); // Add resolvers in order standardResolver.add(new BeanNameELResolver(new StandardBeanNameResolver(localBeans))); standardResolver.add(customResolvers); if (streamResolver != null) { standardResolver.add(streamResolver); } standardResolver.add(new StaticFieldELResolver()); standardResolver.add(new MapELResolver()); standardResolver.add(new ResourceBundleELResolver()); standardResolver.add(new ListELResolver()); standardResolver.add(new ArrayELResolver()); standardResolver.add(new RecordELResolver()); standardResolver.add(new BeanELResolver()); } public StandardELContext(ELContext context) { wrappedContext = context; variableMapper = context.getVariableMapper(); functionMapper = context.getFunctionMapper(); standardResolver = new CompositeELResolver(); customResolvers = new CompositeELResolver(); // Add resolvers in order standardResolver.add(new BeanNameELResolver(new StandardBeanNameResolver(localBeans))); standardResolver.add(customResolvers); // Use resolvers from context from this point on standardResolver.add(context.getELResolver()); } @Override public void putContext(Class<?> key, Object contextObject) { if (wrappedContext == null) { super.putContext(key, contextObject); } else { wrappedContext.putContext(key, contextObject); } } @Override public Object getContext(Class<?> key) { if (wrappedContext == null) { return super.getContext(key); } else { return wrappedContext.getContext(key); } } @Override public ELResolver getELResolver() { return standardResolver; } public void addELResolver(ELResolver resolver) { customResolvers.add(resolver); } @Override public FunctionMapper getFunctionMapper() { return functionMapper; } @Override public VariableMapper getVariableMapper() { return variableMapper; } Map<String,Object> getLocalBeans() { return localBeans; } private static class StandardVariableMapper extends VariableMapper { private Map<String,ValueExpression> vars; @Override public ValueExpression resolveVariable(String variable) { if (vars == null) { return null; } return vars.get(variable); } @Override public ValueExpression setVariable(String variable, ValueExpression expression) { if (vars == null) { vars = new HashMap<>(); } if (expression == null) { return vars.remove(variable); } else { return vars.put(variable, expression); } } } private static class StandardBeanNameResolver extends BeanNameResolver { private final Map<String,Object> beans; StandardBeanNameResolver(Map<String,Object> beans) { this.beans = beans; } @Override public boolean isNameResolved(String beanName) { return beans.containsKey(beanName); } @Override public Object getBean(String beanName) { return beans.get(beanName); } @Override public void setBeanValue(String beanName, Object value) throws PropertyNotWritableException { beans.put(beanName, value); } @Override public boolean isReadOnly(String beanName) { return false; } @Override public boolean canCreateBean(String beanName) { return true; } } private static class StandardFunctionMapper extends FunctionMapper { private final Map<String,Method> methods = new HashMap<>(); StandardFunctionMapper(Map<String,Method> initFunctionMap) { if (initFunctionMap != null) { methods.putAll(initFunctionMap); } } @Override public Method resolveFunction(String prefix, String localName) { String key = prefix + ':' + localName; return methods.get(key); } @Override public void mapFunction(String prefix, String localName, Method method) { String key = prefix + ':' + localName; if (method == null) { methods.remove(key); } else { methods.put(key, method); } } } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
22.0
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9