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

📄 options.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * 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.apache.axis.utils ;/** * General purpose command line options parser. * If this is used outside of Axis just remove the Axis specific sections. * * @author Doug Davis (dug@us.ibm.com) */import org.apache.axis.components.logger.LogFactory;import org.apache.commons.logging.Log;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.Vector;public class Options {    protected static Log log =        LogFactory.getLog(Options.class.getName());    String  args[]     = null ;    Vector  usedArgs   = null ;    URL     defaultURL = null ;    //////////////////////////////////////////////////////////////////////////    // SOASS (Start of Axis Specific Stuff)    // EOASS    //////////////////////////////////////////////////////////////////////////    /**     * Constructor - just pass in the <b>args</b> from the command line.     */    public Options(String _args[]) throws MalformedURLException {        if (_args == null) {            _args = new String [] {};        }        args = _args ;        usedArgs = null ;        defaultURL = new URL("http://localhost:8080/axis/servlet/AxisServlet");                ///////////////////////////////////////////////////////////////////////        // SOASS        /* Process these well known options first */        /******************************************/        try {            getURL();        } catch( MalformedURLException e ) {            log.error( Messages.getMessage("cantDoURL00") );            throw e ;        }        getUser();        getPassword();        // EOASS        ///////////////////////////////////////////////////////////////////////    }    public void setDefaultURL(String url) throws MalformedURLException {        defaultURL = new URL(url);    }    public void setDefaultURL(URL url) {        defaultURL = url ;    }    /**     * Returns an int specifying the number of times that the flag was     * specified on the command line.  Once this flag is looked for you     * must save the result because if you call it again for the same     * flag you'll get zero.     */    public int isFlagSet(char optChar) {        int  value = 0 ;        int  loop ;        int  i ;        for ( loop = 0 ; usedArgs != null && loop < usedArgs.size() ; loop++ ) {            String arg = (String) usedArgs.elementAt(loop);            if ( arg.charAt(0) != '-' ) continue ;            for ( i = 0 ; i < arg.length() ; i++ )                if ( arg.charAt(i) == optChar ) value++ ;        }        for ( loop = 0 ; loop < args.length ; loop++ ) {            if ( args[loop] == null || args[loop].length() == 0 ) continue ;            if ( args[loop].charAt(0) != '-' ) continue ;            while (args[loop] != null &&                    (i = args[loop].indexOf(optChar)) != -1) {                args[loop] = args[loop].substring(0, i) + args[loop].substring(i+1) ;                if ( args[loop].length() == 1 )                     args[loop] = null ;                value++ ;                if ( usedArgs == null ) usedArgs = new Vector();                usedArgs.add( "-" + optChar );            }        }        return( value );    }    /**     * Returns a string (or null) specifying the value for the passed     * option.  If the option isn't there then null is returned.  The     * option's value can be specified one of two ways:     *   -x value     *   -xvalue     * Note that:  -ax value     * is not value (meaning flag 'a' followed by option 'x'.     * Options with values must be the first char after the '-'.     * If the option is specified more than once then the last one wins.     */    public String isValueSet(char optChar) {        String  value = null ;        int     loop ;        int     i ;        for ( loop = 0 ; usedArgs != null && loop < usedArgs.size() ; loop++ ) {            String arg = (String) usedArgs.elementAt(loop);            if ( arg.charAt(0) != '-' || arg.charAt(1) != optChar )                continue ;            value = arg.substring(2);            if ( loop+1 < usedArgs.size() )                value = (String) usedArgs.elementAt(++loop);        }        for ( loop = 0 ; loop < args.length ; loop++ ) {            if ( args[loop] == null || args[loop].length() == 0 ) continue ;            if ( args[loop].charAt(0) != '-' ) continue ;            i = args[loop].indexOf( optChar );            if ( i != 1 ) continue ;            if ( i != args[loop].length()-1 ) {                // Not at end of arg, so use rest of arg as value                 value = args[loop].substring(i+1) ;                args[loop] = args[loop].substring(0, i);            }            else {                // Remove the char from the current arg                args[loop] = args[loop].substring(0, i);                // Nothing after char so use next arg                if ( loop+1 < args.length && args[loop+1] != null ) {                    // Next arg is there and non-null                    if ( args[loop+1].charAt(0) != '-' ) {                        value = args[loop+1];                        args[loop+1] = null ;                    }                }                else {                    // Next is null or not there - do nothing                    // value = null ;                }            }            if ( args[loop].length() == 1 )                 args[loop] = null ;            // For now, keep looping to get that last on there            // break ;         }        if ( value != null ) {            if ( usedArgs == null ) usedArgs = new Vector();            usedArgs.add( "-" + optChar );            if ( value.length() > 0 ) usedArgs.add( value );        }        return( value );    }    /**     * This just returns a string with the unprocessed flags - mainly     * for error reporting - so you can report the unknown flags.     */    public String getRemainingFlags() {        StringBuffer sb = null ;        int          loop ;        for ( loop = 0 ; loop < args.length ; loop++ ) {            if ( args[loop] == null || args[loop].length() == 0 ) continue ;            if ( args[loop].charAt(0) != '-' ) continue ;            if ( sb == null ) sb = new StringBuffer();            sb.append( args[loop].substring(1) );        }        return( sb == null ? null : sb.toString() );    }    /**     * This returns an array of unused args - these are the non-option     * args from the command line.     */    public String[] getRemainingArgs() {        ArrayList  al = null ;        int        loop ;        for ( loop = 0 ; loop < args.length ; loop++ ) {            if ( args[loop] == null || args[loop].length() == 0 ) continue ;            if ( args[loop].charAt(0) == '-' ) continue ;            if ( al == null ) al = new ArrayList();            al.add( (String) args[loop] );        }        if ( al == null ) return( null );        String a[] = new String[ al.size() ];        for ( loop = 0 ; loop < al.size() ; loop++ )            a[loop] = (String) al.get(loop);        return( a );    }    //////////////////////////////////////////////////////////////////////////    // SOASS    public String getURL() throws MalformedURLException {        String  tmp ;        String  host = null ;      // -h    also -l (url)        String  port = null ;      // -p        String  servlet = null ;   // -s    also -f (file)        String  protocol = null ;        URL     url = null ;                // Just in case...        org.apache.axis.client.Call.initialize();        if ( (tmp = isValueSet( 'l' )) != null ) {            url = new URL( tmp );            host = url.getHost();            port = "" + url.getPort();            servlet = url.getFile();            protocol = url.getProtocol();        }        if ( (tmp = isValueSet( 'f' )) != null ) {            host = "";            port = "-1";            servlet = tmp;            protocol = "file";        }        tmp = isValueSet( 'h' ); if ( host == null ) host = tmp ;        tmp = isValueSet( 'p' ); if ( port == null ) port = tmp ;        tmp = isValueSet( 's' ); if ( servlet == null ) servlet = tmp ;        if ( host == null ) host = defaultURL.getHost();        if ( port == null ) port = "" + defaultURL.getPort();        if ( servlet == null ) servlet = defaultURL.getFile();        else            if ( servlet.length()>0 && servlet.charAt(0)!='/' )                 servlet = "/" + servlet ;        if (url == null) {            if (protocol == null) protocol = defaultURL.getProtocol();            tmp = protocol + "://" + host ;            if ( port != null && !port.equals("-1")) tmp += ":" + port ;            if ( servlet != null ) tmp += servlet ;        } else tmp = url.toString();        log.debug( Messages.getMessage("return02", "getURL", tmp) );        return( tmp );    }        public String getHost() {        try {            URL url = new URL(getURL());            return( url.getHost() );        }        catch( Exception exp ) {            return( "localhost" );        }    }    public int getPort() {        try {            URL url = new URL(getURL());            return( url.getPort() );        }        catch( Exception exp ) {            return( -1 );        }    }    public String getUser() {        return( isValueSet('u') );    }    public String getPassword() {        return( isValueSet('w') );    }    // EOASS    //////////////////////////////////////////////////////////////////////////}

⌨️ 快捷键说明

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