⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsondatafilter.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
字号:
// ========================================================================// Copyright 2007 Mort Bay Consulting Pty. Ltd.// ------------------------------------------------------------------------// 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.mortbay.cometd.filter;import java.lang.reflect.Array;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Map;import org.cometd.Channel;import org.cometd.Client;import org.cometd.DataFilter;import org.mortbay.cometd.ClientImpl;import org.mortbay.log.Log;import org.mortbay.util.ajax.JSON;/** JSON DataFilter * This {@link DataFilter} walks an Object as if it was a call to {@link JSON#toString(Object)} and  * calls the protected methods  * {@link #filterString(String)}, * {@link #filterNumber(Number)}, * {@link #filterBoolean(Boolean)}, * {@link #filterArray(Object, ClientImpl)} or * {@link #filterMap(Map, ClientImpl)} appropriate. * Derived filters may override one or more of these methods to provide filtering of specific types. *  * @author gregw * */public class JSONDataFilter implements DataFilter{    public void init(Object init)    {}        public Object filter(Client from, Channel to, Object data) throws IllegalStateException    {        if (data==null)            return null;                if (data instanceof Map)            return filterMap(from,to,(Map)data);        if (data instanceof List)            return filterArray(from,to,((List) data).toArray ());        if (data instanceof Collection)        	return filterArray(from,to,((Collection)data).toArray());        if (data.getClass().isArray() )            return filterArray(from,to,data);        if (data instanceof Number)            return filterNumber((Number)data);        if (data instanceof Boolean)            return filterBoolean((Boolean)data);        if (data instanceof String)            return filterString((String)data);        if (data instanceof JSON.Literal)            return filterJSON(from,to,(JSON.Literal)data);        if (data instanceof JSON.Generator)            return filterJSON(from,to,(JSON.Generator)data);        return filterObject(from,to,data);    }    protected Object filterString(String string)    {        return string;    }    protected Object filterBoolean(Boolean bool)    {        return bool;    }    protected Object filterNumber(Number number)    {        return number;    }    protected Object filterArray(Client from, Channel to, Object array)    {       if (array==null)            return null;                int length = Array.getLength(array);                for (int i=0;i<length;i++)            Array.set(array,i,filter(from, to, Array.get(array,i)));                return array;    }    protected Object filterMap(Client from, Channel to, Map object)    {        if (object==null)            return null;                Iterator iter = object.entrySet().iterator();        while(iter.hasNext())        {            Map.Entry entry = (Map.Entry)iter.next();            entry.setValue(filter(from, to, entry.getValue()));        }        return object;    }    protected Object filterJSON(Client from, Channel to, JSON.Generator generator)    {        String json = JSON.toString(generator);        Object data = JSON.parse (json);        return filter(from,to,data);    }    protected Object filterJSON(Client from, Channel to, JSON.Literal json)    {        Object data = JSON.parse(json.toString());        return filter(from,to,data);    }        protected Object filterObject(Client from, Channel to, Object obj)    {        Log.warn(this+": Cannot Filter "+obj.getClass());        return obj;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -