亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? expressionfactory.java

?? java屬性邦定的(JSR-295)的一個實現(xiàn)
?? JAVA
字號:
/*
 * Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is
 * subject to license terms.
 */

package org.jdesktop.el;

/**
 * Parses a <code>String</code> into a {@link ValueExpression} or
 * {@link MethodExpression} instance for later evaluation.
 *
 * <p>Classes that implement the EL expression language expose their
 * functionality via this abstract class. There is no concrete implementation
 * of this API available in this package. Technologies such as
 * JavaServer Pages and JavaServer Faces provide access to an
 * implementation via factory methods.</p>
 *
 * <p>The {@link #createValueExpression} method is used to parse expressions
 * that evaluate to values (both l-values and r-values are supported).
 * The {@link #createMethodExpression} method is used to parse expressions
 * that evaluate to a reference to a method on an object.</p>
 *
 * <p>Unlike previous incarnations of this API, there is no way to parse
 * and evaluate an expression in one single step. The expression needs to first
 * be parsed, and then evaluated.</p>
 *
 * <p>Resolution of model objects is performed at evaluation time, via the
 * {@link ELResolver} associated with the {@link ELContext} passed to
 * the <code>ValueExpression</code> or <code>MethodExpression</code>.</p>
 *
 * <p>The ELContext object also provides access to the {@link FunctionMapper}
 * and {@link VariableMapper} to be used when parsing the expression.
 * EL function and variable mapping is performed at parse-time, and
 * the results are
 * bound to the expression. Therefore, the {@link ELContext},
 * {@link FunctionMapper},
 * and {@link VariableMapper}
 * are not stored for future use and do not have to be
 * <code>Serializable</code>.</p>
 *
 * <p>The <code>createValueExpression</code> and
 * <code>createMethodExpression</code> methods must be thread-safe. That is,
 * multiple threads may call these methods on the same
 * <code>ExpressionFactory</code> object simultaneously. Implementations
 * should synchronize access if they depend on transient state.
 * Implementations should not, however, assume that only one object of
 * each <code>ExpressionFactory</code> type will be instantiated; global
 * caching should therefore be static.</p>
 *
 * <p>The <code>ExpressionFactory</code> must be able to handle the following
 * types of input for the <code>expression</code> parameter:
 * <ul>
 *   <li>Single expressions using the <code>${}</code> delimiter
 *       (e.g. <code>"${employee.lastName}"</code>).</li>
 *   <li>Single expressions using the <code>#{}</code> delimiter
 *       (e.g. <code>"#{employee.lastName}"</code>).</li>
 *   <li>Literal text containing no <code>${}</code> or <code>#{}</code>
 *       delimiters (e.g. <code>"John Doe"</code>).</li>
 *   <li>Multiple expressions using the same delimiter (e.g.
 *       <code>"${employee.firstName}${employee.lastName}"</code> or
 *       <code>"#{employee.firstName}#{employee.lastName}"</code>).</li>
 *   <li>Mixed literal text and expressions using the same delimiter (e.g.
 *       <code>"Name: ${employee.firstName} ${employee.lastName}"</code>).</li>
 * </ul></p>
 *
 * <p>The following types of input are illegal and must cause an
 * {@link ELException} to be thrown:
 * <ul>
 *   <li>Multiple expressions using different delimiters (e.g.
 *       <code>"${employee.firstName}#{employee.lastName}"</code>).</li>
 *   <li>Mixed literal text and expressions using different delimiters(e.g.
 *       <code>"Name: ${employee.firstName} #{employee.lastName}"</code>).</li>
 * </ul></p>
 *
 * @since JSP 2.1
 */
public abstract class ExpressionFactory {
    
    /**
     * Parses an expression into a {@link ValueExpression} for later
     * evaluation. Use this method for expressions that refer to values.
     *
     * <p>This method should perform syntactic validation of the expression.
     * If in doing so it detects errors, it should raise an
     * <code>ELException</code>.</p>
     *
     * @param context The EL context used to parse the expression.
     *     The <code>FunctionMapper</code> and <code>VariableMapper</code>
     *     stored in the ELContext
     *     are used to resolve functions and variables found in
     *     the expression. They can be <code>null</code>, in which case
     *     functions or variables are not supported for this expression.
     *     The object
     *     returned must invoke the same functions and access the same
     *     variable mappings 
     *     regardless of whether
     *     the mappings in the provided <code>FunctionMapper</code>
     *     and <code>VariableMapper</code> instances
     *     change between calling
     *     <code>ExpressionFactory.createValueExpression()</code> and any
     *     method on <code>ValueExpression</code>.
     *     <p>
     *     Note that within the EL, the ${} and #{} syntaxes are treated identically.  
     *     This includes the use of VariableMapper and FunctionMapper at expression creation 
     *     time. Each is invoked if not null, independent 
     *     of whether the #{} or ${} syntax is used for the expression.</p>
     * @param expression The expression to parse
     * @param expectedType The type the result of the expression
     *     will be coerced to after evaluation.
     * @return The parsed expression
     * @throws NullPointerException Thrown if expectedType is null.
     * @throws ELException Thrown if there are syntactical errors in the
     *     provided expression.
     */
    public abstract ValueExpression createValueExpression(
            ELContext context,
            String expression,
            Class<?> expectedType);
    
    /**
     * Creates a ValueExpression that wraps an object instance.  This
     * method can be used to pass any object as a ValueExpression.  The
     * wrapper ValueExpression is read only, and returns the wrapped
     * object via its <code>getValue()</code> method, optionally coerced.
     *
     * @param instance The object instance to be wrapped.
     * @param expectedType The type the result of the expression
     *     will be coerced to after evaluation.  There will be no
     *     coercion if it is Object.class,
     */
    public abstract ValueExpression createValueExpression(
            Object instance,
            Class<?> expectedType);

    /**
     * Parses an expression into a {@link MethodExpression} for later
     * evaluation. Use this method for expressions that refer to methods.
     *
     * <p>
     * If the expression is a String literal, a <code>MethodExpression
     * </code> is created, which when invoked, returns the String literal,
     * coerced to expectedReturnType.  An ELException is thrown if
     * expectedReturnType is void or if the coercion of the String literal
     * to the expectedReturnType yields an error (see Section "1.16 Type
     * Conversion").
     * </p>
     * <p>This method should perform syntactic validation of the expression.
     * If in doing so it detects errors, it should raise an
     * <code>ELException</code>.</p>
     *
     * @param context The EL context used to parse the expression.
     *     The <code>FunctionMapper</code> and <code>VariableMapper</code>
     *     stored in the ELContext
     *     are used to resolve functions and variables found in
     *     the expression. They can be <code>null</code>, in which
     *     case functions or variables are not supported for this expression.
     *     The object
     *     returned must invoke the same functions and access the same variable
     *     mappings
     *     regardless of whether
     *     the mappings in the provided <code>FunctionMapper</code>
     *     and <code>VariableMapper</code> instances
     *     change between calling
     *     <code>ExpressionFactory.createMethodExpression()</code> and any
     *     method on <code>MethodExpression</code>.
     *     <p>
     *     Note that within the EL, the ${} and #{} syntaxes are treated identically.  
     *     This includes the use of VariableMapper and FunctionMapper at expression creation 
     *     time. Each is invoked if not null, independent 
     *     of whether the #{} or ${} syntax is used for the expression.</p>
     *
     * @param expression The expression to parse
     * @param expectedReturnType The expected return type for the method
     *     to be found. After evaluating the expression, the
     *     <code>MethodExpression</code> must check that the return type of
     *     the actual method matches this type. Passing in a value of
     *     <code>null</code> indicates the caller does not care what the
     *     return type is, and the check is disabled.
     * @param expectedParamTypes The expected parameter types for the method to
     *     be found. Must be an array with no elements if there are
     *     no parameters expected. It is illegal to pass <code>null</code>.
     * @return The parsed expression
     * @throws ELException Thrown if there are syntactical errors in the
     *     provided expression.
     * @throws NullPointerException if paramTypes is <code>null</code>.
     */
    public abstract MethodExpression createMethodExpression(
            ELContext context,
            String expression,
            Class<?> expectedReturnType,
            Class<?>[] expectedParamTypes);
    
    /**
     * Coerces an object to a specific type according to the
     * EL type conversion rules.
     *
     * <p>An <code>ELException</code> is thrown if an error results from
     * applying the conversion rules.
     * </p>
     *
     * @param obj The object to coerce.
     * @param targetType The target type for the coercion.
     * @throws ELException thrown if an error results from applying the
     *     conversion rules.
     */
    public abstract Object coerceToType(
            Object obj,
            Class<?> targetType);
    
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情另类小说区图片区视频区| 亚洲免费观看在线观看| 日本成人中文字幕在线视频| 欧美丰满少妇xxxxx高潮对白| 水野朝阳av一区二区三区| 337p亚洲精品色噜噜| 日本成人在线电影网| 91精品国产日韩91久久久久久| 免费在线欧美视频| 精品成a人在线观看| 成人一二三区视频| 亚洲一级在线观看| 精品日韩成人av| 不卡的电视剧免费网站有什么| 亚洲另类春色校园小说| 欧美精品久久久久久久久老牛影院| 麻豆成人综合网| 久久亚洲精品国产精品紫薇| 成人av在线网站| 亚洲图片欧美色图| 2021久久国产精品不只是精品| 国产成人精品影视| 亚洲一区二区av在线| 欧美成人精品3d动漫h| 97久久久精品综合88久久| 五月天视频一区| 国产色综合一区| 欧美三级视频在线观看| 国产成人8x视频一区二区| 一区二区成人在线视频| 久久久久久久久蜜桃| 91麻豆视频网站| 激情五月婷婷综合| 亚洲综合在线视频| 国产女人水真多18毛片18精品视频| 欧美性xxxxx极品少妇| 国产伦精品一区二区三区免费迷| 一区二区三区电影在线播| www激情久久| 91精品国产91热久久久做人人| 成人免费毛片片v| 久久精品免费观看| 婷婷六月综合亚洲| 亚洲美女视频在线| 国产午夜精品久久久久久久| 欧美剧情片在线观看| 91论坛在线播放| 国产成人av一区二区三区在线观看| 亚洲一二三专区| 最好看的中文字幕久久| 国产日韩v精品一区二区| 4438x亚洲最大成人网| 欧美在线视频你懂得| 成人深夜福利app| 国产精品一品二品| 精品一区二区精品| 免费精品视频在线| 天天影视色香欲综合网老头| 亚洲一区二区三区四区在线免费观看| 国产嫩草影院久久久久| 久久久99精品免费观看不卡| 日韩区在线观看| 欧美久久久久中文字幕| 欧美色综合网站| 欧美日韩精品一区视频| 欧美性色黄大片| 欧美天堂一区二区三区| 欧美午夜一区二区三区| 日本高清不卡aⅴ免费网站| www.欧美色图| 91网页版在线| 色乱码一区二区三区88| 91亚洲精品久久久蜜桃网站 | 奇米777欧美一区二区| 午夜在线成人av| 亚洲一区日韩精品中文字幕| 亚洲最新视频在线观看| 亚洲专区一二三| 天天影视网天天综合色在线播放| 五月天久久比比资源色| 日韩电影网1区2区| 久久成人综合网| 国产成人综合亚洲网站| 成人性生交大片免费看中文网站| 成人黄页在线观看| 色综合色综合色综合色综合色综合 | 欧美午夜精品一区二区蜜桃| 在线看不卡av| 欧美精品欧美精品系列| 欧美mv日韩mv国产网站app| 精品国产免费一区二区三区四区| 久久久亚洲国产美女国产盗摄 | 欧美一区二区三区成人| 日韩一本二本av| 国产日韩高清在线| 一区二区三区在线看| 天堂成人国产精品一区| 国产精品自拍在线| 91麻豆国产自产在线观看| 欧美三级电影精品| 亚洲精品一区二区三区精华液| 中文字幕欧美日韩一区| 夜夜揉揉日日人人青青一国产精品 | 亚洲自拍偷拍九九九| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品 欧美精品| 色婷婷久久久久swag精品| 欧美一区二区在线免费观看| 日本一区二区三区四区在线视频| 亚洲精品免费一二三区| 麻豆成人久久精品二区三区小说| 国产91富婆露脸刺激对白| 欧洲一区二区三区在线| 2020国产精品| 亚洲五码中文字幕| 大胆欧美人体老妇| 欧美亚洲动漫另类| 日本一区二区三区dvd视频在线| 亚洲午夜精品网| 成人妖精视频yjsp地址| 538prom精品视频线放| 国产精品不卡在线| 激情都市一区二区| 欧美日韩一卡二卡三卡 | 精品国产一区二区亚洲人成毛片 | 夜夜嗨av一区二区三区四季av| 看电视剧不卡顿的网站| 欧洲国产伦久久久久久久| 久久久久久久久久久久久女国产乱 | 成人国产精品免费观看| 91精品国产综合久久福利软件 | 亚洲人123区| 国内精品视频666| 欧美精品国产精品| 亚洲欧美国产三级| 粉嫩一区二区三区性色av| 91精品国产欧美日韩| 亚洲精品国产品国语在线app| 国产成人综合亚洲91猫咪| 日韩视频在线你懂得| 亚洲一区二区在线免费看| 成人小视频在线| 久久久久综合网| 久久99精品久久久| 制服丝袜av成人在线看| 一区二区三区在线看| 91一区二区三区在线观看| 国产女同互慰高潮91漫画| 国产一区二区三区免费在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲综合丁香婷婷六月香| 成人av免费在线观看| 久久综合视频网| 久草在线在线精品观看| 欧美一级艳片视频免费观看| 午夜精品爽啪视频| 欧美精品在欧美一区二区少妇| 亚洲一区二区精品3399| 欧美制服丝袜第一页| 夜夜精品浪潮av一区二区三区| 91女人视频在线观看| 亚洲私人黄色宅男| 99精品久久免费看蜜臀剧情介绍| 国产精品久久久久一区| 成人黄色片在线观看| 中文字幕一区二区三区在线播放 | 国产综合色视频| 精品盗摄一区二区三区| 精品一区二区在线观看| wwwwww.欧美系列| 国产69精品久久99不卡| 成人欧美一区二区三区| 91麻豆国产福利在线观看| 一区二区三区 在线观看视频| 在线免费av一区| 日韩国产在线一| 欧美精品一区二区在线播放 | 一区二区三区在线视频免费| 在线视频一区二区三| 爽爽淫人综合网网站| 欧美v日韩v国产v| 国产成人精品免费| 亚洲你懂的在线视频| 这里只有精品免费| 国产一区高清在线| 亚洲日本丝袜连裤袜办公室| 精品污污网站免费看| 日韩国产在线观看一区| 欧美哺乳videos| 91在线小视频| 日韩在线观看一区二区| 久久综合九色综合欧美98| 成人黄色在线看| 婷婷丁香久久五月婷婷| 精品福利一二区| 色婷婷亚洲一区二区三区| 卡一卡二国产精品| 亚洲精选一二三| 精品精品欲导航| 色综合久久久久久久久久久|