1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * ident "%Z%%M% %I% %E% SMI" 24 * 25 * Copyright (c) 2001 by Sun Microsystems, Inc. 26 * All rights reserved. 27 */ 28 package com.sun.dhcpmgr.cli.dhcpbatch; 29 30 import com.sun.dhcpmgr.bridge.BridgeException; 31 import com.sun.dhcpmgr.cli.common.DhcpCliPrint; 32 import com.sun.dhcpmgr.cli.common.DhcpCliFunction; 33 import com.sun.dhcpmgr.cli.common.DhcpCliProgram; 34 import com.sun.dhcpmgr.cli.dhtadm.DhtAdm; 35 import com.sun.dhcpmgr.cli.pntadm.PntAdm; 36 37 /** 38 * This class represents a DHCP CLI command. 39 */ 40 public class DhcpCommand { 41 42 /** 43 * The dhtadm CLI command. 44 */ 45 public static String DHTADM = "dhtadm"; 46 public static DhtAdm dhtadm = null; 47 48 /** 49 * The pntadm CLI command. 50 */ 51 public static String PNTADM = "pntadm"; 52 public static PntAdm pntadm = null; 53 54 private String [] arglist; 55 56 /** 57 * The constructor for a DhcpCommand. 58 */ 59 public DhcpCommand() { 60 // nothing to do. 61 } // constructor 62 63 /** 64 * Sets the arglist for the command. 65 * @param input the batch input line. 66 */ 67 public void init(String input) throws BridgeException { 68 arglist = DhcpCliFunction.getSvcMgr().getArguments(input); 69 } // reset 70 71 /** 72 * Returns a localized string for this function 73 * @param key the resource bundle string identifier 74 * @return string from resource bundle. 75 */ 76 public String getString(String key) { 77 return ResourceStrings.getString(key); 78 } // getString 79 80 /** 81 * Get the name of the CLI program. 82 * @return the name of the CLI for this command. 83 */ 84 public String getProgram() { 85 86 String program = null; 87 if (arglist.length != 0) { 88 program = arglist[0]; 89 } 90 91 return program; 92 93 } // getProgram 94 95 /** 96 * Returns the arguments for the CLI. 97 * @return the arguments. 98 */ 99 public String [] getArgs() { 100 101 String [] args = new String[arglist.length - 1]; 102 103 System.arraycopy(arglist, 1, args, 0, arglist.length - 1); 104 return args; 105 106 } // getArgs 107 108 /** 109 * Executes the CLI. 110 * @return return code as returned by caller. 111 */ 112 public int execute() { 113 String program = getProgram(); 114 String [] args = getArgs(); 115 int returnCode = DhcpCliProgram.SUCCESS; 116 117 if (program == null) { 118 Object [] arguments = new Object[1]; 119 arguments[0] = program; 120 DhcpBatch.printErrMessage(getString("dhcpcommand_invalid_command"), 121 arguments); 122 } else if (program.equals(PNTADM)) { 123 if (pntadm == null) { 124 pntadm = new PntAdm(args); 125 } else { 126 pntadm.reset(args); 127 } 128 returnCode = pntadm.execute(); 129 } else if (program.equals(DHTADM)) { 130 if (dhtadm == null) { 131 dhtadm = new DhtAdm(args); 132 } else { 133 dhtadm.reset(args); 134 } 135 returnCode = dhtadm.execute(); 136 } else { 137 Object [] arguments = new Object[1]; 138 arguments[0] = program; 139 DhcpBatch.printErrMessage(getString("dhcpcommand_invalid_command"), 140 arguments); 141 returnCode = DhcpCliProgram.FAILURE; 142 } 143 return (returnCode); 144 } // execute 145 146 } // DhcpCommand