EMMA Coverage Report (generated Fri Feb 21 04:03:47 CET 2014)
[all classes][org.jomc.ant]

COVERAGE SUMMARY FOR SOURCE FILE [Messages.java]

nameclass, %method, %block, %line, %
Messages.java100% (1/1)75%  (3/4)55%  (38/69)29%  (3.7/13)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Messages100% (1/1)75%  (3/4)55%  (38/69)29%  (3.7/13)
Messages (): void 0%   (0/1)0%   (0/3)0%   (0/2)
getMessage (String, Object []): String 100% (1/1)28%  (9/32)22%  (2/9)
getMessage (Throwable): String 100% (1/1)74%  (14/19)73%  (0.7/1)
<static initializer> 100% (1/1)100% (15/15)100% (1/1)

1/*
2 *   Copyright (C) Christian Schulte, 2005-206
3 *   All rights reserved.
4 *
5 *   Redistribution and use in source and binary forms, with or without
6 *   modification, are permitted provided that the following conditions
7 *   are met:
8 *
9 *     o Redistributions of source code must retain the above copyright
10 *       notice, this list of conditions and the following disclaimer.
11 *
12 *     o Redistributions in binary form must reproduce the above copyright
13 *       notice, this list of conditions and the following disclaimer in
14 *       the documentation and/or other materials provided with the
15 *       distribution.
16 *
17 *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18 *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19 *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20 *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 *   $JOMC: Messages.java 4760 2013-04-08 17:56:26Z schulte $
29 *
30 */
31package org.jomc.ant;
32 
33import java.text.MessageFormat;
34import java.util.MissingResourceException;
35import java.util.ResourceBundle;
36 
37/**
38 * Utilities for accessing messages.
39 *
40 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
41 * @version $JOMC: Messages.java 4760 2013-04-08 17:56:26Z schulte $
42 */
43abstract class Messages
44{
45 
46    /** Constant for the name of the resource bundle backing the tasks. */
47    private static final String RESOURCE_BUNDLE_NAME =
48        Messages.class.getPackage().getName().replace( '.', '/' ) + "/Messages";
49 
50    /** Creates a new {@code Messages} instance. */
51    Messages()
52    {
53        super();
54    }
55 
56    /**
57     * Gets a message for a given key from the resource bundle backing the tasks formatted using the given arguments.
58     *
59     * @param key The key of the string to get.
60     * @param arguments The arguments to format the string with.
61     *
62     * @return The string matching {@code key} formatted using {@code arguments}.
63     *
64     * @throws NullPointerException if {@code key} is {@code null}.
65     */
66    static String getMessage( final String key, final Object... arguments )
67    {
68        if ( key == null )
69        {
70            throw new NullPointerException( "key" );
71        }
72 
73        try
74        {
75            return MessageFormat.format( ResourceBundle.getBundle( RESOURCE_BUNDLE_NAME ).getString( key ), arguments );
76        }
77        catch ( final MissingResourceException e )
78        {
79            throw new AssertionError( e );
80        }
81        catch ( final ClassCastException e )
82        {
83            throw new AssertionError( e );
84        }
85        catch ( final IllegalArgumentException e )
86        {
87            throw new AssertionError( e );
88        }
89    }
90 
91    /**
92     * Gets the message of a given {@code Throwable} recursively.
93     *
94     * @param t The {@code Throwable} to get the message of or {@code null}.
95     *
96     * @return The message of {@code t} or {@code null}.
97     */
98    static String getMessage( final Throwable t )
99    {
100        return t != null
101               ? t.getMessage() != null && t.getMessage().trim().length() > 0
102                 ? t.getMessage()
103                 : getMessage( t.getCause() )
104               : null;
105 
106    }
107 
108}

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