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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? inboundvariable.java

?? dwr 源文件 dwr 源文件 dwr 源文件
?? JAVA
字號:
/*
 * Copyright 2005 Joe Walker
 *
 * 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.directwebremoting;

import org.directwebremoting.dwrp.ConversionConstants;
import org.directwebremoting.util.Logger;
import org.directwebremoting.util.Messages;

/**
 * A simple struct to hold data about a single converted javascript variable.
 * @author Joe Walker [joe at getahead dot ltd dot uk]
 */
public final class InboundVariable
{
    /**
     * Parsing ctor
     * @param context How we lookup references
     * @param key The name of the variable that this was transfered as
     * @param type The type information from javascript
     * @param value The javascript variable converted to a string
     */
    public InboundVariable(InboundContext context, String key, String type, String value)
    {
        this.context = context;
        this.type = type;
        this.value = value;
        this.key = key;
        this.dereferenced = attemptDereference();
    }

    /**
     * Attempt to de-reference an inbound variable.
     * We try de-referencing as soon as possible (why? there is a good reason
     * for it, it fixes some bug, but I can't remember what right now) However
     * the referenced variable may not exist yet, so the de-referencing may
     * fail, requiring us to have another go later.
     * @return Did the dereferencing succeed?
     */
    private boolean attemptDereference()
    {
        if (ConversionConstants.TYPE_REFERENCE.equals(type))
        {
            while (ConversionConstants.TYPE_REFERENCE.equals(type))
            {
                InboundVariable cd = context.getInboundVariable(value);
                if (cd == null)
                {
                    return false;
                }

                type = cd.type;
                value = cd.value;
            }

            // For references without an explicit variable name, we use the
            // name of the thing they point at
            if (key == null)
            {
                key = value;
            }
        }

        return true;
    }

    /**
     * Call <code>attemptDereference()</code>, and complain if it fails.
     * The assumption is that when we call this it really should succeed.
     */
    private void forceDereference()
    {
        if (!dereferenced)
        {
            dereferenced = attemptDereference();
            if (!dereferenced)
            {
                log.error(Messages.getString("InboundVariable.MissingVariable", value)); //$NON-NLS-1$
            }
        }
    }

    /**
     * @return Returns the lookup table.
     */
    public InboundContext getLookup()
    {
        forceDereference();
        return context;
    }

    /**
     * @return Returns the type.
     */
    public String getType()
    {
        forceDereference();
        return type;
    }

    /**
     * Was this type null on the way in
     * @return true if the javascript variable was null or undefined.
     */
    public boolean isNull()
    {
        forceDereference();
        return type.equals(ConversionConstants.INBOUND_NULL);
    }

    /**
     * @return Returns the value.
     */
    public String getValue()
    {
        forceDereference();
        return value;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    public String toString()
    {
        forceDereference();
        return type + ConversionConstants.INBOUND_TYPE_SEPARATOR + value;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(Object obj)
    {
        if (this == obj)
        {
            return true;
        }

        if (!(obj instanceof InboundVariable))
        {
            return false;
        }

        InboundVariable that = (InboundVariable) obj;

        forceDereference();

        if (!this.type.equals(that.type))
        {
            return false;
        }

        if (!this.value.equals(that.value))
        {
            return false;
        }

        if (this.key == null || that.key == null)
        {
            return false;
        }

        return this.key.equals(that.key);
    }

    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    public int hashCode()
    {
        return value.hashCode() + type.hashCode();
    }

    /**
     * How do be lookup references?
     */
    private InboundContext context;

    /**
     * The variable name
     */
    private String key;

    /**
     * The javascript declared variable type
     */
    private String type;

    /**
     * The javascript declared variable value
     */
    private String value;

    /**
     * Has this variable been successfully de-referenced
     */
    private boolean dereferenced;

    /**
     * The log stream
     */
    private static final Logger log = Logger.getLogger(InboundVariable.class);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av一区二区| 国产美女视频91| 国产亚洲精品中文字幕| 欧美综合色免费| www.欧美精品一二区| 国产精品一品视频| 国产精品中文字幕欧美| 国产综合一区二区| 婷婷开心激情综合| 日韩精品电影一区亚洲| 日韩电影在线免费看| 亚洲国产成人va在线观看天堂| 亚洲精品久久7777| 亚洲一区日韩精品中文字幕| 亚洲精选视频在线| 亚洲午夜久久久久久久久电影院 | 色播五月激情综合网| 日本精品视频一区二区| 欧美在线高清视频| 777亚洲妇女| 精品日韩在线观看| 亚洲精品一区二区三区99| 日本精品一级二级| 97国产一区二区| 国产成人自拍在线| 精品中文av资源站在线观看| 亚洲一区二区三区四区五区中文| 亚洲人午夜精品天堂一二香蕉| 日韩女优毛片在线| 欧美精品久久99久久在免费线 | 欧美三区在线观看| 国产一区视频导航| 久久国产剧场电影| 经典三级视频一区| 韩国精品主播一区二区在线观看 | 成人毛片在线观看| 丁香亚洲综合激情啪啪综合| 午夜av一区二区| 亚洲日本护士毛茸茸| 国产精品久久久久久久久晋中| 精品成人私密视频| 精品成人私密视频| 国产日韩精品一区二区三区 | 99热在这里有精品免费| 成人免费三级在线| 国产成人亚洲综合a∨婷婷图片| 亚洲综合激情小说| 在线看国产一区二区| 99久久er热在这里只有精品15| 久久综合九色综合97_久久久| 国产欧美一区二区在线| 91久久人澡人人添人人爽欧美| 麻豆成人在线观看| 经典三级视频一区| 成人午夜免费av| 91小视频免费观看| 欧美日韩国产乱码电影| 欧美一级久久久久久久大片| 欧美精品一区二区三区四区 | 久久99国内精品| 麻豆一区二区三| 国产99久久久国产精品| 在线一区二区三区四区五区| 欧美日韩亚洲不卡| 国产精品护士白丝一区av| 亚洲三级久久久| 欧美96一区二区免费视频| 国产综合色产在线精品| voyeur盗摄精品| 欧美一区二区三区在线观看视频| 日韩一级片在线观看| 国产亚洲精品aa| 亚洲电影激情视频网站| 经典三级一区二区| 欧美日韩你懂的| 久久久精品欧美丰满| 一区二区三区中文在线| 免费高清成人在线| 99久久99久久久精品齐齐 | 777亚洲妇女| 1024成人网| 久久69国产一区二区蜜臀| 色婷婷综合久久久中文一区二区 | 一个色在线综合| 亚洲精品高清在线| 久久福利资源站| 成人亚洲一区二区一| 国产99久久久久久免费看农村| 不卡av免费在线观看| 欧美亚洲综合久久| 日韩欧美综合在线| 国产精品视频麻豆| 国产一区91精品张津瑜| 欧洲视频一区二区| 日韩美女视频19| 国产iv一区二区三区| 欧美在线free| 国产精品国产三级国产专播品爱网| 美女性感视频久久| 欧美日韩在线播放三区| 国产欧美一区二区精品性色| 免费在线欧美视频| 7777精品伊人久久久大香线蕉 | 日本午夜一区二区| 色综合久久久网| 综合电影一区二区三区 | 91电影在线观看| 成人免费一区二区三区在线观看| 色屁屁一区二区| 日韩伦理电影网| 欧美色图天堂网| 美女一区二区视频| 亚洲欧洲一区二区三区| 欧美精品在线一区二区| 成人av电影在线播放| 日韩精品五月天| 国产精品美女久久久久久2018| 欧美色倩网站大全免费| 午夜精品福利一区二区蜜股av | 亚洲美女在线一区| 精品剧情在线观看| 无码av免费一区二区三区试看| 亚洲免费在线观看| 久久免费视频色| 日韩亚洲电影在线| 欧美在线free| 高清视频一区二区| 日本aⅴ精品一区二区三区| 一区二区三区在线视频观看58 | 成人亚洲一区二区一| 亚洲成av人影院| 国产精品热久久久久夜色精品三区| 成人高清免费观看| 精品免费视频.| 亚洲精品一区二区精华| 日韩一级在线观看| 欧美伦理电影网| 欧美性生活一区| 99久久99久久综合| 蜜臀99久久精品久久久久久软件| 91精品免费在线| 一区二区视频在线| 偷拍日韩校园综合在线| 一区二区三区**美女毛片| 日韩毛片在线免费观看| 亚洲欧洲www| 555夜色666亚洲国产免| 欧美精品丝袜久久久中文字幕| 精品亚洲国内自在自线福利| 91麻豆精品国产91久久久久久久久 | 成人av在线资源网站| 高清久久久久久| 国产99精品国产| 国产精品99久久久久久有的能看| 性感美女久久精品| 国产一区二区三区av电影| 狠狠久久亚洲欧美| 寂寞少妇一区二区三区| 国产精选一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 99综合影院在线| 91麻豆国产自产在线观看| 北条麻妃一区二区三区| 国产一区二区三区四区五区入口| 91污片在线观看| 精品视频一区二区不卡| 欧美日本韩国一区二区三区视频| 亚洲成人1区2区| 中文字幕免费一区| 精品少妇一区二区| 精品国产乱码久久久久久老虎| 91精品久久久久久久久99蜜臂| 欧美一级爆毛片| 久久九九99视频| 一区二区成人在线观看| 粉嫩av一区二区三区在线播放| 国产精品久久久久四虎| 亚洲色图一区二区| 亚洲国产精品一区二区久久| 日韩一区精品字幕| 精品影院一区二区久久久| 黄网站免费久久| 六月丁香综合在线视频| 国产suv精品一区二区三区| 欧美亚洲高清一区| 久久久久久久久久美女| 亚洲色图清纯唯美| 亚洲午夜久久久久久久久电影院 | 人禽交欧美网站| 成人aaaa免费全部观看| 色成年激情久久综合| 日韩欧美久久久| 中文久久乱码一区二区| 亚洲在线观看免费视频| 视频一区在线视频| 日韩在线a电影| 色综合天天性综合| 欧美在线你懂的| 久久久久99精品一区| 亚洲一二三级电影|