abstractmessagecontextimpl.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 140 行

JAVA
140
字号
/** Copyright (c) 1998-2007 Caucho Technology -- all rights reserved** This file is part of Resin(R) Open Source** Each copy or derived work must preserve the copyright notice and this* notice unmodified.** Resin Open Source is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** Resin Open Source is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty* of NON-INFRINGEMENT.  See the GNU General Public License for more* details.** You should have received a copy of the GNU General Public License* along with Resin Open Source; if not, write to the**   Free Software Foundation, Inc.*   59 Temple Place, Suite 330*   Boston, MA 02111-1307  USA** @author Emil Ong*/package com.caucho.soap.jaxws;import java.util.AbstractMap;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import java.util.logging.Logger;import java.util.logging.Level;import javax.xml.bind.JAXBContext;import javax.xml.namespace.QName;import javax.xml.soap.SOAPMessage;import javax.xml.ws.*;import javax.xml.ws.handler.*;import com.caucho.util.L10N;public abstract class AbstractMessageContextImpl extends HashMap<String,Object>                                                 implements MessageContext {  private final Map<String,Scope> _scopes = new HashMap<String,Scope>();  protected AbstractMessageContextImpl()  {  }  public Scope getScope(String name)  {    Scope scope = _scopes.get(name);    if (scope == null)      throw new IllegalArgumentException();    return scope;  }  public void setScope(String name, Scope scope)  {    if (! containsKey(name))      throw new IllegalArgumentException();    _scopes.put(name, scope);  }  public void clear()  {    super.clear();    _scopes.clear();  }  public Object put(String key, Object value)  {    Object previous = super.put(key, value);    if (previous == null)      _scopes.put(key, Scope.HANDLER);    return previous;  }  public void putAll(Map<? extends String,? extends Object> m)  {    if (m instanceof MessageContext) {       MessageContext context = (MessageContext) m;      for (Map.Entry<? extends String, ? extends Object> entry : m.entrySet()) {        super.put(entry.getKey(), entry.getValue());        setScope(entry.getKey(), context.getScope(entry.getKey()));      }    }    else {      for (Map.Entry<? extends String, ? extends Object> entry : m.entrySet())        put(entry.getKey(), entry.getValue());    }  }  public void putAll(Map<? extends String,? extends Object> m, Scope scope)  {    for (Map.Entry<? extends String, ? extends Object> entry : m.entrySet()) {      super.put(entry.getKey(), entry.getValue());      setScope(entry.getKey(), scope);    }  }  public Map<String,Object> getScopedSubMap(Scope scope)  {    Map<String,Object> map = new HashMap<String,Object>();    for (Map.Entry<? extends String, ? extends Object> entry : entrySet()) {      if (scope.equals(getScope(entry.getKey())))        map.put(entry.getKey(), entry.getValue());    }    return map;  }  public Object remove(Object key)  {    Object previous = super.remove(key);    if (previous != null)      _scopes.remove(key);    return previous;  }}

⌨️ 快捷键说明

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