EMMA Coverage Report (generated Thu Jan 03 04:54:40 CET 2013)
[all classes][org.jomc.cli]

COVERAGE SUMMARY FOR SOURCE FILE [Jomc.java]

nameclass, %method, %block, %line, %
Jomc.java100% (2/2)88%  (29/33)81%  (956/1183)85%  (167.8/198)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Jomc100% (1/1)87%  (27/31)81%  (943/1170)85%  (164.8/195)
getDefaultExceptionMessage (Locale): String 0%   (0/1)0%   (0/22)0%   (0/3)
main (String []): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDefaultLogLevel (Level): void 0%   (0/1)0%   (0/3)0%   (0/2)
setPrintWriter (PrintWriter): void 0%   (0/1)0%   (0/4)0%   (0/2)
getMessage (Throwable): String 100% (1/1)64%  (9/14)64%  (0.6/1)
formatLogLines (Level, String): String 100% (1/1)65%  (82/127)64%  (14.6/23)
isLoggable (Level): boolean 100% (1/1)65%  (11/17)63%  (1.9/3)
getCommandLineParser (): CommandLineParser 100% (1/1)75%  (15/20)91%  (2.7/3)
getDebugOption (): Option 100% (1/1)75%  (15/20)91%  (2.7/3)
getFailOnWarningsOption (): Option 100% (1/1)75%  (15/20)91%  (2.7/3)
getHelpCommandName (): String 100% (1/1)75%  (15/20)91%  (2.7/3)
getLocale (): Locale 100% (1/1)75%  (15/20)91%  (2.7/3)
getVerboseOption (): Option 100% (1/1)75%  (15/20)91%  (2.7/3)
getCommands (): Command [] 100% (1/1)76%  (16/21)91%  (2.7/3)
getDescPad (): int 100% (1/1)76%  (16/21)91%  (2.7/3)
getLeftPad (): int 100% (1/1)76%  (16/21)91%  (2.7/3)
getWidth (): int 100% (1/1)76%  (16/21)91%  (2.7/3)
<static initializer> 100% (1/1)80%  (8/10)90%  (1.8/2)
getDefaultLogLevelInfo (Locale, String): String 100% (1/1)81%  (21/26)93%  (2.8/3)
getTimeInfo (Locale, Date): String 100% (1/1)81%  (21/26)93%  (2.8/3)
getUsage (Locale, String): String 100% (1/1)81%  (21/26)93%  (2.8/3)
getIllegalArgumentsInfo (Locale, String, String): String 100% (1/1)83%  (25/30)94%  (2.8/3)
log (Level, String, Throwable): void 100% (1/1)85%  (88/103)91%  (20/22)
jomc (String []): int 100% (1/1)89%  (434/485)93%  (69.5/75)
Jomc (): void 100% (1/1)100% (6/6)100% (3/3)
access$000 (Jomc, Level, String, Throwable): void 100% (1/1)100% (6/6)100% (1/1)
getDefaultLogLevel (): Level 100% (1/1)100% (10/10)100% (3/3)
getLogLevel (): Level 100% (1/1)100% (24/24)100% (5/5)
getPrintWriter (): PrintWriter 100% (1/1)100% (13/13)100% (3/3)
run (String []): int 100% (1/1)100% (6/6)100% (1/1)
setLogLevel (Level): void 100% (1/1)100% (4/4)100% (2/2)
     
class Jomc$1100% (1/1)100% (2/2)100% (13/13)100% (3/3)
Jomc$1 (Jomc): void 100% (1/1)100% (6/6)100% (1/1)
onLog (Level, String, Throwable): void 100% (1/1)100% (7/7)100% (2/2)

1// SECTION-START[License Header]
2// <editor-fold defaultstate="collapsed" desc=" Generated License ">
3/*
4 *   Java Object Management and Configuration
5 *   Copyright (C) Christian Schulte, 2005-206
6 *   All rights reserved.
7 *
8 *   Redistribution and use in source and binary forms, with or without
9 *   modification, are permitted provided that the following conditions
10 *   are met:
11 *
12 *     o Redistributions of source code must retain the above copyright
13 *       notice, this list of conditions and the following disclaimer.
14 *
15 *     o Redistributions in binary form must reproduce the above copyright
16 *       notice, this list of conditions and the following disclaimer in
17 *       the documentation and/or other materials provided with the
18 *       distribution.
19 *
20 *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
21 *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
22 *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23 *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 *   $JOMC: Jomc.java 4712 2013-01-02 13:56:12Z schulte $
32 *
33 */
34// </editor-fold>
35// SECTION-END
36package org.jomc.cli;
37 
38import java.io.BufferedReader;
39import java.io.IOException;
40import java.io.PrintWriter;
41import java.io.StringReader;
42import java.io.StringWriter;
43import java.util.Date;
44import java.util.logging.Level;
45import org.apache.commons.cli.CommandLine;
46import org.apache.commons.cli.HelpFormatter;
47import org.apache.commons.cli.Options;
48import org.apache.commons.cli.ParseException;
49import org.apache.commons.lang.StringUtils;
50import org.jomc.model.modlet.DefaultModelProcessor;
51import org.jomc.model.modlet.DefaultModelProvider;
52import org.jomc.modlet.DefaultModletProvider;
53 
54// SECTION-START[Documentation]
55// <editor-fold defaultstate="collapsed" desc=" Generated Documentation ">
56/**
57 * JOMC command line interface.
58 *
59 * <dl>
60 *   <dt><b>Identifier:</b></dt><dd>JOMC ⁑ CLI ⁑ Application</dd>
61 *   <dt><b>Name:</b></dt><dd>JOMC ⁑ CLI ⁑ Application</dd>
62 *   <dt><b>Abstract:</b></dt><dd>No</dd>
63 *   <dt><b>Final:</b></dt><dd>No</dd>
64 *   <dt><b>Stateless:</b></dt><dd>No</dd>
65 * </dl>
66 *
67 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 1.0
68 * @version 1.4
69 */
70// </editor-fold>
71// SECTION-END
72// SECTION-START[Annotations]
73// <editor-fold defaultstate="collapsed" desc=" Generated Annotations ">
74@javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
75// </editor-fold>
76// SECTION-END
77public final class Jomc
78{
79    // SECTION-START[Jomc]
80 
81    /**
82     * Log level events are logged at by default.
83     * @see #getDefaultLogLevel()
84     */
85    private static final Level DEFAULT_LOG_LEVEL = Level.WARNING;
86 
87    /** Default log level. */
88    private static volatile Level defaultLogLevel;
89 
90    /** Print writer of the instance. */
91    private PrintWriter printWriter;
92 
93    /** Log level of the instance. */
94    private Level logLevel;
95 
96    /** Greatest severity logged by the command. */
97    private Level severity = Level.ALL;
98 
99    /**
100     * Gets the print writer of the instance.
101     *
102     * @return The print writer of the instance.
103     *
104     * @see #setPrintWriter(java.io.PrintWriter)
105     */
106    public PrintWriter getPrintWriter()
107    {
108        if ( this.printWriter == null )
109        {
110            // JDK: As of JDK 6, "this.printWriter = System.console().writer()".
111            this.printWriter = new PrintWriter( System.out, true );
112        }
113 
114        return this.printWriter;
115    }
116 
117    /**
118     * Sets the print writer of the instance.
119     *
120     * @param value The new print writer of the instance or {@code null}.
121     *
122     * @see #getPrintWriter()
123     */
124    public void setPrintWriter( final PrintWriter value )
125    {
126        this.printWriter = value;
127    }
128 
129    /**
130     * Gets the default log level events are logged at.
131     * <p>The default log level is controlled by system property {@code org.jomc.cli.Jomc.defaultLogLevel} holding the
132     * log level to log events at by default. If that property is not set, the {@code WARNING} default is returned.</p>
133     *
134     * @return The log level events are logged at by default.
135     *
136     * @see #getLogLevel()
137     * @see Level#parse(java.lang.String)
138     */
139    public static Level getDefaultLogLevel()
140    {
141        if ( defaultLogLevel == null )
142        {
143            defaultLogLevel = Level.parse( System.getProperty(
144                "org.jomc.cli.Jomc.defaultLogLevel", DEFAULT_LOG_LEVEL.getName() ) );
145 
146        }
147 
148        return defaultLogLevel;
149    }
150 
151    /**
152     * Sets the default log level events are logged at.
153     *
154     * @param value The new default level events are logged at or {@code null}.
155     *
156     * @see #getDefaultLogLevel()
157     */
158    public static void setDefaultLogLevel( final Level value )
159    {
160        defaultLogLevel = value;
161    }
162 
163    /**
164     * Gets the log level of the instance.
165     *
166     * @return The log level of the instance.
167     *
168     * @see #getDefaultLogLevel()
169     * @see #setLogLevel(java.util.logging.Level)
170     * @see #isLoggable(java.util.logging.Level)
171     */
172    public Level getLogLevel()
173    {
174        if ( this.logLevel == null )
175        {
176            this.logLevel = getDefaultLogLevel();
177 
178            if ( this.isLoggable( Level.CONFIG ) )
179            {
180                this.log( Level.CONFIG,
181                          this.getDefaultLogLevelInfo( this.getLocale(), this.logLevel.getLocalizedName() ), null );
182 
183            }
184        }
185 
186        return this.logLevel;
187    }
188 
189    /**
190     * Sets the log level of the instance.
191     *
192     * @param value The new log level of the instance or {@code null}.
193     *
194     * @see #getLogLevel()
195     * @see #isLoggable(java.util.logging.Level)
196     */
197    public void setLogLevel( final Level value )
198    {
199        this.logLevel = value;
200    }
201 
202    /**
203     * Checks if a message at a given level is provided to the listeners of the instance.
204     *
205     * @param level The level to test.
206     *
207     * @return {@code true}, if messages at {@code level} are provided to the listeners of the instance;
208     * {@code false}, if messages at {@code level} are not provided to the listeners of the instance.
209     *
210     * @throws NullPointerException if {@code level} is {@code null}.
211     *
212     * @see #getLogLevel()
213     * @see #setLogLevel(java.util.logging.Level)
214     */
215    public boolean isLoggable( final Level level )
216    {
217        if ( level == null )
218        {
219            throw new NullPointerException( "level" );
220        }
221 
222        return level.intValue() >= this.getLogLevel().intValue();
223    }
224 
225    /**
226     * Processes the given arguments and executes the corresponding command.
227     *
228     * @param args Arguments to process.
229     *
230     * @return Status code.
231     *
232     * @see Command#STATUS_SUCCESS
233     * @see Command#STATUS_FAILURE
234     */
235    public int jomc( final String[] args )
236    {
237        Command cmd = null;
238        this.severity = Level.ALL;
239 
240        try
241        {
242            DefaultModelProvider.setDefaultModuleLocation( "META-INF/jomc-cli.xml" );
243            DefaultModelProcessor.setDefaultTransformerLocation( "META-INF/jomc-cli.xsl" );
244            DefaultModletProvider.setDefaultModletLocation( "META-INF/jomc-modlet.xml" );
245 
246            final StringBuilder commandInfo = new StringBuilder();
247 
248            for ( Command c : this.getCommands() )
249            {
250                if ( cmd == null && args != null && args.length > 0
251                     && ( args[0].equals( c.getName() ) || args[0].equals( c.getAbbreviatedName() ) ) )
252                {
253                    cmd = c;
254                }
255 
256                commandInfo.append( StringUtils.rightPad( c.getName(), 25 ) ).append( " : " ).
257                    append( c.getShortDescription( this.getLocale() ) ).append( " (" ).append( c.getAbbreviatedName() ).
258                    append( ")" ).append( System.getProperty( "line.separator", "\n" ) );
259 
260            }
261 
262            if ( cmd == null )
263            {
264                this.getPrintWriter().println( this.getUsage( this.getLocale(), this.getHelpCommandName() ) );
265                this.getPrintWriter().println();
266                this.getPrintWriter().println( commandInfo.toString() );
267                return Command.STATUS_FAILURE;
268            }
269 
270            final String[] commandArguments = new String[ args.length - 1 ];
271            System.arraycopy( args, 1, commandArguments, 0, commandArguments.length );
272 
273            final Options options = cmd.getOptions();
274            options.addOption( this.getDebugOption() );
275            options.addOption( this.getVerboseOption() );
276            options.addOption( this.getFailOnWarningsOption() );
277 
278            if ( commandArguments.length > 0 && this.getHelpCommandName().equals( commandArguments[0] ) )
279            {
280                final StringWriter usage = new StringWriter();
281                final StringWriter opts = new StringWriter();
282                final HelpFormatter formatter = new HelpFormatter();
283 
284                PrintWriter pw = new PrintWriter( usage );
285                formatter.printUsage( pw, this.getWidth(), cmd.getName(), options );
286                pw.close();
287                assert !pw.checkError() : "Unexpected error printing usage.";
288 
289                pw = new PrintWriter( opts );
290                formatter.printOptions( pw, this.getWidth(), options, this.getLeftPad(), this.getDescPad() );
291                pw.close();
292                assert !pw.checkError() : "Unexpected error printing options.";
293 
294                this.getPrintWriter().println( cmd.getShortDescription( this.getLocale() ) );
295                this.getPrintWriter().println();
296                this.getPrintWriter().println( usage.toString() );
297                this.getPrintWriter().println( opts.toString() );
298                this.getPrintWriter().println();
299                this.getPrintWriter().println( cmd.getLongDescription( this.getLocale() ) );
300                this.getPrintWriter().println();
301                return Command.STATUS_SUCCESS;
302            }
303 
304            cmd.getListeners().add( new Command.Listener()
305            {
306 
307                public void onLog( final Level level, final String message, final Throwable t )
308                {
309                    log( level, message, t );
310                }
311 
312            } );
313 
314            DefaultModelProvider.setDefaultModuleLocation( null );
315            DefaultModelProcessor.setDefaultTransformerLocation( null );
316            DefaultModletProvider.setDefaultModletLocation( null );
317 
318            final CommandLine commandLine = this.getCommandLineParser().parse( options, commandArguments );
319            final boolean debug = commandLine.hasOption( this.getDebugOption().getOpt() );
320            final boolean verbose = commandLine.hasOption( this.getVerboseOption().getOpt() );
321            Level debugLevel = Level.ALL;
322 
323            if ( debug )
324            {
325                final String debugOption = commandLine.getOptionValue( this.getDebugOption().getOpt() );
326                if ( debugOption != null )
327                {
328                    debugLevel = Level.parse( debugOption );
329                }
330            }
331 
332            if ( debug || verbose )
333            {
334                this.setLogLevel( debug ? debugLevel : Level.INFO );
335            }
336 
337            cmd.setLogLevel( this.getLogLevel() );
338 
339            if ( this.isLoggable( Level.FINER ) )
340            {
341                for ( int i = 0; i < args.length; i++ )
342                {
343                    this.log( Level.FINER, new StringBuilder().append( "[" ).append( i ).append( "] -> '" ).
344                        append( args[i] ).append( "'" ).append( System.getProperty( "line.separator", "\n" ) ).
345                        toString(), null );
346 
347                }
348            }
349 
350            final boolean failOnWarnings = commandLine.hasOption( this.getFailOnWarningsOption().getOpt() );
351 
352            final int status = cmd.execute( commandLine );
353            if ( status == Command.STATUS_SUCCESS && failOnWarnings
354                 && this.severity.intValue() >= Level.WARNING.intValue() )
355            {
356                return Command.STATUS_FAILURE;
357            }
358 
359            return status;
360        }
361        catch ( final ParseException e )
362        {
363            this.log( Level.SEVERE, this.getIllegalArgumentsInfo(
364                this.getLocale(), cmd.getName(), this.getHelpCommandName() ), e );
365 
366            return Command.STATUS_FAILURE;
367        }
368        catch ( final Throwable t )
369        {
370            this.log( Level.SEVERE, null, t );
371            return Command.STATUS_FAILURE;
372        }
373        finally
374        {
375            DefaultModelProvider.setDefaultModuleLocation( null );
376            DefaultModelProcessor.setDefaultTransformerLocation( null );
377            DefaultModletProvider.setDefaultModletLocation( null );
378            this.getPrintWriter().flush();
379            this.severity = Level.ALL;
380        }
381    }
382 
383    /**
384     * Main entry point.
385     *
386     * @param args The application arguments.
387     */
388    public static void main( final String[] args )
389    {
390        System.exit( run( args ) );
391    }
392 
393    /**
394     * Main entry point without exiting the VM.
395     *
396     * @param args The application arguments.
397     *
398     * @return Status code.
399     *
400     * @see Command#STATUS_SUCCESS
401     * @see Command#STATUS_FAILURE
402     */
403    public static int run( final String[] args )
404    {
405        return new Jomc().jomc( args );
406    }
407 
408    /**
409     * Logs to the print writer of the instance.
410     *
411     * @param level The level of the event.
412     * @param message The message of the event or {@code null}.
413     * @param throwable The throwable of the event {@code null}.
414     *
415     * @throws NullPointerException if {@code level} is {@code null}.
416     */
417    private void log( final Level level, final String message, final Throwable throwable )
418    {
419        if ( level == null )
420        {
421            throw new NullPointerException( "level" );
422        }
423 
424        if ( this.severity.intValue() < level.intValue() )
425        {
426            this.severity = level;
427        }
428 
429        if ( this.isLoggable( level ) )
430        {
431            if ( message != null )
432            {
433                this.getPrintWriter().print( this.formatLogLines( level, "" ) );
434                this.getPrintWriter().print( this.formatLogLines( level, message ) );
435            }
436 
437            if ( throwable != null )
438            {
439                this.getPrintWriter().print( this.formatLogLines( level, "" ) );
440                final String m = getMessage( throwable );
441 
442                if ( m != null && m.length() > 0 )
443                {
444                    this.getPrintWriter().print( this.formatLogLines( level, m ) );
445                }
446                else
447                {
448                    this.getPrintWriter().print( this.formatLogLines(
449                        level, this.getDefaultExceptionMessage( this.getLocale() ) ) );
450 
451                }
452 
453                if ( this.getLogLevel().intValue() < Level.INFO.intValue() )
454                {
455                    final StringWriter stackTrace = new StringWriter();
456                    final PrintWriter pw = new PrintWriter( stackTrace );
457                    throwable.printStackTrace( pw );
458                    pw.flush();
459                    this.getPrintWriter().print( this.formatLogLines( level, stackTrace.toString() ) );
460                }
461            }
462        }
463 
464        this.getPrintWriter().flush();
465    }
466 
467    private String formatLogLines( final Level level, final String text )
468    {
469        BufferedReader reader = null;
470        boolean suppressExceptionOnClose = true;
471 
472        try
473        {
474            final StringBuilder lines = new StringBuilder( text.length() );
475            reader = new BufferedReader( new StringReader( text ) );
476 
477            String line;
478            while ( ( line = reader.readLine() ) != null )
479            {
480                final boolean debug = this.getLogLevel().intValue() < Level.INFO.intValue();
481                lines.append( "[" ).append( level.getLocalizedName() );
482 
483                if ( debug )
484                {
485                    lines.append( "|" ).append( Thread.currentThread().getName() ).append( "|" ).
486                        append( this.getTimeInfo( this.getLocale(), new Date( System.currentTimeMillis() ) ) );
487 
488                }
489 
490                lines.append( "] " ).append( line ).append( System.getProperty( "line.separator", "\n" ) );
491            }
492 
493            suppressExceptionOnClose = false;
494            return lines.toString();
495        }
496        catch ( final IOException e )
497        {
498            throw new AssertionError( e );
499        }
500        finally
501        {
502            try
503            {
504                if ( reader != null )
505                {
506                    reader.close();
507                }
508            }
509            catch ( final IOException e )
510            {
511                if ( suppressExceptionOnClose )
512                {
513                    this.log( Level.SEVERE, getMessage( e ), e );
514                }
515                else
516                {
517                    throw new AssertionError( e );
518                }
519            }
520        }
521    }
522 
523    private static String getMessage( final Throwable t )
524    {
525        return t != null ? t.getMessage() != null ? t.getMessage() : getMessage( t.getCause() ) : null;
526    }
527 
528    // SECTION-END
529    // SECTION-START[Constructors]
530    // <editor-fold defaultstate="collapsed" desc=" Generated Constructors ">
531    /** Creates a new {@code Jomc} instance. */
532    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
533    public Jomc()
534    {
535        // SECTION-START[Default Constructor]
536        super();
537        // SECTION-END
538    }
539    // </editor-fold>
540    // SECTION-END
541    // SECTION-START[Dependencies]
542    // <editor-fold defaultstate="collapsed" desc=" Generated Dependencies ">
543    /**
544     * Gets the {@code <Command Line Parser>} dependency.
545     * <p>
546     *   This method returns the {@code <Commons CLI - GNU Command Line Parser>} object of the {@code <org.apache.commons.cli.CommandLineParser>} specification at any specification level.
547     *   That specification does not apply to any scope. A new object is returned whenever requested.
548     * </p>
549     * <dl>
550     *   <dt><b>Final:</b></dt><dd>No</dd>
551     * </dl>
552     * @return The {@code <Command Line Parser>} dependency.
553     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
554     */
555    @SuppressWarnings("unused")
556    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
557    private org.apache.commons.cli.CommandLineParser getCommandLineParser()
558    {
559        final org.apache.commons.cli.CommandLineParser _d = (org.apache.commons.cli.CommandLineParser) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Command Line Parser" );
560        assert _d != null : "'Command Line Parser' dependency not found.";
561        return _d;
562    }
563    /**
564     * Gets the {@code <Commands>} dependency.
565     * <p>
566     *   This method returns any available object of the {@code <JOMC ⁑ CLI ⁑ Command>} specification at specification level 1.0.
567     *   That specification does not apply to any scope. A new object is returned whenever requested.
568     * </p>
569     * <dl>
570     *   <dt><b>Final:</b></dt><dd>No</dd>
571     * </dl>
572     * @return The {@code <Commands>} dependency.
573     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
574     */
575    @SuppressWarnings("unused")
576    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
577    private org.jomc.cli.Command[] getCommands()
578    {
579        final org.jomc.cli.Command[] _d = (org.jomc.cli.Command[]) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Commands" );
580        assert _d != null : "'Commands' dependency not found.";
581        return _d;
582    }
583    /**
584     * Gets the {@code <Debug Option>} dependency.
585     * <p>
586     *   This method returns the {@code <JOMC ⁑ CLI ⁑ Debug Option>} object of the {@code <JOMC ⁑ CLI ⁑ Application Option>} specification at specification level 1.2.
587     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
588     * </p>
589     * <dl>
590     *   <dt><b>Final:</b></dt><dd>No</dd>
591     * </dl>
592     * @return The {@code <Debug Option>} dependency.
593     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
594     */
595    @SuppressWarnings("unused")
596    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
597    private org.apache.commons.cli.Option getDebugOption()
598    {
599        final org.apache.commons.cli.Option _d = (org.apache.commons.cli.Option) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Debug Option" );
600        assert _d != null : "'Debug Option' dependency not found.";
601        return _d;
602    }
603    /**
604     * Gets the {@code <Fail On Warnings Option>} dependency.
605     * <p>
606     *   This method returns the {@code <JOMC ⁑ CLI ⁑ Fail-On-Warnings Option>} object of the {@code <JOMC ⁑ CLI ⁑ Application Option>} specification at specification level 1.2.
607     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
608     * </p>
609     * <dl>
610     *   <dt><b>Final:</b></dt><dd>No</dd>
611     * </dl>
612     * @return The {@code <Fail On Warnings Option>} dependency.
613     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
614     */
615    @SuppressWarnings("unused")
616    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
617    private org.apache.commons.cli.Option getFailOnWarningsOption()
618    {
619        final org.apache.commons.cli.Option _d = (org.apache.commons.cli.Option) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Fail On Warnings Option" );
620        assert _d != null : "'Fail On Warnings Option' dependency not found.";
621        return _d;
622    }
623    /**
624     * Gets the {@code <Locale>} dependency.
625     * <p>
626     *   This method returns the {@code <default>} object of the {@code <java.util.Locale>} specification at specification level 1.1.
627     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
628     * </p>
629     * <dl>
630     *   <dt><b>Final:</b></dt><dd>No</dd>
631     * </dl>
632     * @return The {@code <Locale>} dependency.
633     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
634     */
635    @SuppressWarnings("unused")
636    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
637    private java.util.Locale getLocale()
638    {
639        final java.util.Locale _d = (java.util.Locale) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Locale" );
640        assert _d != null : "'Locale' dependency not found.";
641        return _d;
642    }
643    /**
644     * Gets the {@code <Verbose Option>} dependency.
645     * <p>
646     *   This method returns the {@code <JOMC ⁑ CLI ⁑ Verbose Option>} object of the {@code <JOMC ⁑ CLI ⁑ Application Option>} specification at specification level 1.2.
647     *   That specification does not apply to any scope. A new object is returned whenever requested and bound to this instance.
648     * </p>
649     * <dl>
650     *   <dt><b>Final:</b></dt><dd>No</dd>
651     * </dl>
652     * @return The {@code <Verbose Option>} dependency.
653     * @throws org.jomc.ObjectManagementException if getting the dependency instance fails.
654     */
655    @SuppressWarnings("unused")
656    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
657    private org.apache.commons.cli.Option getVerboseOption()
658    {
659        final org.apache.commons.cli.Option _d = (org.apache.commons.cli.Option) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getDependency( this, "Verbose Option" );
660        assert _d != null : "'Verbose Option' dependency not found.";
661        return _d;
662    }
663    // </editor-fold>
664    // SECTION-END
665    // SECTION-START[Properties]
666    // <editor-fold defaultstate="collapsed" desc=" Generated Properties ">
667    /**
668     * Gets the value of the {@code <Desc Pad>} property.
669     * <p><dl>
670     *   <dt><b>Final:</b></dt><dd>No</dd>
671     * </dl></p>
672     * @return The number of characters of padding to be prefixed to each description line.
673     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
674     */
675    @SuppressWarnings("unused")
676    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
677    private int getDescPad()
678    {
679        final java.lang.Integer _p = (java.lang.Integer) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "Desc Pad" );
680        assert _p != null : "'Desc Pad' property not found.";
681        return _p.intValue();
682    }
683    /**
684     * Gets the value of the {@code <Help Command Name>} property.
685     * <p><dl>
686     *   <dt><b>Final:</b></dt><dd>No</dd>
687     * </dl></p>
688     * @return The name of the command used to request help.
689     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
690     */
691    @SuppressWarnings("unused")
692    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
693    private java.lang.String getHelpCommandName()
694    {
695        final java.lang.String _p = (java.lang.String) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "Help Command Name" );
696        assert _p != null : "'Help Command Name' property not found.";
697        return _p;
698    }
699    /**
700     * Gets the value of the {@code <Left Pad>} property.
701     * <p><dl>
702     *   <dt><b>Final:</b></dt><dd>No</dd>
703     * </dl></p>
704     * @return The number of characters of padding to be prefixed to each line.
705     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
706     */
707    @SuppressWarnings("unused")
708    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
709    private int getLeftPad()
710    {
711        final java.lang.Integer _p = (java.lang.Integer) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "Left Pad" );
712        assert _p != null : "'Left Pad' property not found.";
713        return _p.intValue();
714    }
715    /**
716     * Gets the value of the {@code <width>} property.
717     * <p><dl>
718     *   <dt><b>Final:</b></dt><dd>No</dd>
719     * </dl></p>
720     * @return The number of characters per line for the usage statement.
721     * @throws org.jomc.ObjectManagementException if getting the property instance fails.
722     */
723    @SuppressWarnings("unused")
724    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
725    private int getWidth()
726    {
727        final java.lang.Integer _p = (java.lang.Integer) org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getProperty( this, "width" );
728        assert _p != null : "'width' property not found.";
729        return _p.intValue();
730    }
731    // </editor-fold>
732    // SECTION-END
733    // SECTION-START[Messages]
734    // <editor-fold defaultstate="collapsed" desc=" Generated Messages ">
735    /**
736     * Gets the text of the {@code <Default Exception Message>} message.
737     * <p><dl>
738     *   <dt><b>Languages:</b></dt>
739     *     <dd>English (default)</dd>
740     *     <dd>Deutsch</dd>
741     *   <dt><b>Final:</b></dt><dd>No</dd>
742     * </dl></p>
743     * @param locale The locale of the message to return.
744     * @return The text of the {@code <Default Exception Message>} message for {@code locale}.
745     * @throws org.jomc.ObjectManagementException if getting the message instance fails.
746     */
747    @SuppressWarnings("unused")
748    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
749    private String getDefaultExceptionMessage( final java.util.Locale locale )
750    {
751        final String _m = org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getMessage( this, "Default Exception Message", locale );
752        assert _m != null : "'Default Exception Message' message not found.";
753        return _m;
754    }
755    /**
756     * Gets the text of the {@code <Default Log Level Info>} message.
757     * <p><dl>
758     *   <dt><b>Languages:</b></dt>
759     *     <dd>English (default)</dd>
760     *     <dd>Deutsch</dd>
761     *   <dt><b>Final:</b></dt><dd>No</dd>
762     * </dl></p>
763     * @param locale The locale of the message to return.
764     * @param defaultLogLevel Format argument.
765     * @return The text of the {@code <Default Log Level Info>} message for {@code locale}.
766     * @throws org.jomc.ObjectManagementException if getting the message instance fails.
767     */
768    @SuppressWarnings("unused")
769    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
770    private String getDefaultLogLevelInfo( final java.util.Locale locale, final java.lang.String defaultLogLevel )
771    {
772        final String _m = org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getMessage( this, "Default Log Level Info", locale, defaultLogLevel );
773        assert _m != null : "'Default Log Level Info' message not found.";
774        return _m;
775    }
776    /**
777     * Gets the text of the {@code <Illegal Arguments Info>} message.
778     * <p><dl>
779     *   <dt><b>Languages:</b></dt>
780     *     <dd>English (default)</dd>
781     *     <dd>Deutsch</dd>
782     *   <dt><b>Final:</b></dt><dd>No</dd>
783     * </dl></p>
784     * @param locale The locale of the message to return.
785     * @param command Format argument.
786     * @param helpCommandName Format argument.
787     * @return The text of the {@code <Illegal Arguments Info>} message for {@code locale}.
788     * @throws org.jomc.ObjectManagementException if getting the message instance fails.
789     */
790    @SuppressWarnings("unused")
791    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
792    private String getIllegalArgumentsInfo( final java.util.Locale locale, final java.lang.String command, final java.lang.String helpCommandName )
793    {
794        final String _m = org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getMessage( this, "Illegal Arguments Info", locale, command, helpCommandName );
795        assert _m != null : "'Illegal Arguments Info' message not found.";
796        return _m;
797    }
798    /**
799     * Gets the text of the {@code <Time Info>} message.
800     * <p><dl>
801     *   <dt><b>Languages:</b></dt>
802     *     <dd>English (default)</dd>
803     *     <dd>Deutsch</dd>
804     *   <dt><b>Final:</b></dt><dd>No</dd>
805     * </dl></p>
806     * @param locale The locale of the message to return.
807     * @param time Format argument.
808     * @return The text of the {@code <Time Info>} message for {@code locale}.
809     * @throws org.jomc.ObjectManagementException if getting the message instance fails.
810     */
811    @SuppressWarnings("unused")
812    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
813    private String getTimeInfo( final java.util.Locale locale, final java.util.Date time )
814    {
815        final String _m = org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getMessage( this, "Time Info", locale, time );
816        assert _m != null : "'Time Info' message not found.";
817        return _m;
818    }
819    /**
820     * Gets the text of the {@code <Usage>} message.
821     * <p><dl>
822     *   <dt><b>Languages:</b></dt>
823     *     <dd>English (default)</dd>
824     *     <dd>Deutsch</dd>
825     *   <dt><b>Final:</b></dt><dd>No</dd>
826     * </dl></p>
827     * @param locale The locale of the message to return.
828     * @param helpCommandName Format argument.
829     * @return The text of the {@code <Usage>} message for {@code locale}.
830     * @throws org.jomc.ObjectManagementException if getting the message instance fails.
831     */
832    @SuppressWarnings("unused")
833    @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.4", comments = "See http://www.jomc.org/jomc/1.4/jomc-tools-1.4" )
834    private String getUsage( final java.util.Locale locale, final java.lang.String helpCommandName )
835    {
836        final String _m = org.jomc.ObjectManagerFactory.getObjectManager( this.getClass().getClassLoader() ).getMessage( this, "Usage", locale, helpCommandName );
837        assert _m != null : "'Usage' message not found.";
838        return _m;
839    }
840    // </editor-fold>
841    // SECTION-END
842}

[all classes][org.jomc.cli]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov