FileDocCategorySizeDatePackage
CLUtil.javaAPI DocApache Axis 1.43834Sat Apr 22 18:57:28 BST 2006org.apache.axis.utils

CLUtil

public final class CLUtil extends Object
CLUtil offers basic utility operations for use both internal and external to package.
author
Peter Donald
since
4.0

Fields Summary
private static final int
MAX_DESCRIPTION_COLUMN_LENGTH
Constructors Summary
private CLUtil()
Private Constructor so that no instance can ever be created.

    
Methods Summary
public static final java.lang.StringBufferdescribeOptions(CLOptionDescriptor[] options)
Format options into StringBuffer and return. This is typically used to print "Usage" text in response to a "--help" or invalid option.

param
options the option descriptors
return
the formatted description/help for options


                                          
            
    
        final StringBuffer sb = new StringBuffer();

        for( int i = 0; i < options.length; i++ )
        {
            final char ch = (char) options[i].getId();
            final String name = options[i].getName();
            String description = options[i].getDescription();
            int flags = options[i].getFlags();
            boolean argumentRequired =
                    ( (flags & CLOptionDescriptor.ARGUMENT_REQUIRED) ==
                      CLOptionDescriptor.ARGUMENT_REQUIRED);
            boolean twoArgumentsRequired =
                    ( (flags & CLOptionDescriptor.ARGUMENTS_REQUIRED_2) ==
                      CLOptionDescriptor.ARGUMENTS_REQUIRED_2);
            boolean needComma = false;
            if (twoArgumentsRequired)
                argumentRequired = true;

            sb.append('\t");

            if( Character.isLetter(ch) )
            {
                sb.append( "-" );
                sb.append( ch );
                needComma = true;
            }

            if( null != name )
            {
                if( needComma )
                {
                    sb.append( ", " );
                }

                sb.append( "--" );
                sb.append( name );
                if (argumentRequired)
                {
                    sb.append(" <argument>");
                }
                if (twoArgumentsRequired)
                {
                    sb.append("=<value>");
                }
                sb.append( JavaUtils.LS );
            }

            if( null != description )
            {
                while( description.length() > MAX_DESCRIPTION_COLUMN_LENGTH )
                {
                    final String descriptionPart =
                        description.substring( 0, MAX_DESCRIPTION_COLUMN_LENGTH );
                    description =
                        description.substring( MAX_DESCRIPTION_COLUMN_LENGTH );
                    sb.append( "\t\t" );
                    sb.append( descriptionPart );
                    sb.append( JavaUtils.LS );
                }

                sb.append( "\t\t" );
                sb.append( description );
                sb.append( JavaUtils.LS );
            }
        }
        return sb;