FileDocCategorySizeDatePackage
bind.javaAPI DocExample1771Wed Apr 05 11:25:42 BST 2000None

bind.java

/*
 * This example is from the book "Java Enterprise in a Nutshell".
 * Copyright (c) 1999 by O'Reilly & Associates.  
 * You may distribute this source code for non-commercial purposes only.
 * You may study, modify, and use this example for any purpose, as long as
 * this notice is retained.  Note that this example is provided "as is",
 * WITHOUT WARRANTY of any kind either expressed or implied.
 */

import java.util.Vector;
import javax.naming.*;

class bind implements Command {

    public void execute(Context c, Vector v) 
        throws CommandException {

        // check to see if we have all the args we need to bind
        if (v.isEmpty())
            throw new CommandException(new Exception(),
                "No names specified");
        else if (v.elementAt(1) == null)
            throw new CommandException(new Exception(),
                "Only one name specified");
        
        String name = (String)v.firstElement();
        String objName = (String)v.elementAt(1);
        
        try {
            Object obj = c.lookup(objName);
            c.bind(name, obj);
            System.out.println("Bound " + name + " to " + objName);
        }
        catch (NameAlreadyBoundException nabe) {
            throw new CommandException(nabe, 
                "The name " + name + " is already bound");
        }
        catch (OperationNotSupportedException onse) {
            throw new CommandException(onse, 
                "Binding " + objName + " to " + name + " is not supported");
        }        
        catch (NamingException ne) {
            throw new CommandException(ne,
                "Couldn't bind " + name + " to "  + objName);
        }
    }

    public void help() { System.out.println("Usage: bind [name] [obj]"); }
}