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

📄 namingutil.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
字号:
// ========================================================================// $Id: NamingUtil.java 3680 2008-09-21 10:37:13Z janb $// Copyright 1999-2006 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.naming;import java.util.HashMap;import java.util.Map;import javax.naming.Binding;import javax.naming.Context;import javax.naming.Name;import javax.naming.NameNotFoundException;import javax.naming.NameParser;import javax.naming.NamingEnumeration;import javax.naming.NamingException;import org.mortbay.log.Log;/** * Util.java * * * Created: Tue Jul  1 18:26:17 2003 * * @author <a href="mailto:janb@mortbay.com">Jan Bartel</a> * @version 1.0 */public class NamingUtil {    /* ------------------------------------------------------------ */    /**     * Bind an object to a context ensuring all subcontexts      * are created if necessary     *     * @param ctx the context into which to bind     * @param name the name relative to context to bind     * @param obj the object to be bound     * @exception NamingException if an error occurs     */    public static Context bind (Context ctx, String nameStr, Object obj)        throws NamingException    {        Name name = ctx.getNameParser("").parse(nameStr);        //no name, nothing to do         if (name.size() == 0)            return null;        Context subCtx = ctx;                //last component of the name will be the name to bind        for (int i=0; i < name.size() - 1; i++)        {            try            {                subCtx = (Context)subCtx.lookup (name.get(i));                if(Log.isDebugEnabled())Log.debug("Subcontext "+name.get(i)+" already exists");            }            catch (NameNotFoundException e)            {                subCtx = subCtx.createSubcontext(name.get(i));                if(Log.isDebugEnabled())Log.debug("Subcontext "+name.get(i)+" created");            }        }        subCtx.rebind (name.get(name.size() - 1), obj);        if(Log.isDebugEnabled())Log.debug("Bound object to "+name.get(name.size() - 1));        return subCtx;           }             public static void unbind (Context ctx)    throws NamingException    {        //unbind everything in the context and all of its subdirectories        NamingEnumeration ne = ctx.listBindings(ctx.getNameInNamespace());                while (ne.hasMoreElements())        {            Binding b = (Binding)ne.nextElement();            if (b.getObject() instanceof Context)            {                unbind((Context)b.getObject());            }            else                ctx.unbind(b.getName());        }    }        /**     * Do a deep listing of the bindings for a context.     * @param ctx the context containing the name for which to list the bindings     * @param name the name in the context to list     * @return map: key is fully qualified name, value is the bound object      * @throws NamingException     */    public static Map flattenBindings (Context ctx, String name)    throws NamingException    {        HashMap map = new HashMap();        //the context representation of name arg        Context c = (Context)ctx.lookup (name);        NameParser parser = c.getNameParser("");        NamingEnumeration enm = ctx.listBindings(name);        while (enm.hasMore())        {            Binding b = (Binding)enm.next();            if (b.getObject() instanceof Context)            {                map.putAll(flattenBindings (c, b.getName()));            }            else            {                Name compoundName = parser.parse (c.getNameInNamespace());                compoundName.add(b.getName());                map.put (compoundName.toString(), b.getObject());            }                    }                return map;    }    }

⌨️ 快捷键说明

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