EMMA Coverage Report (generated Tue Jan 14 00:37:43 CET 2014)
[all classes][org.jdtaus.core.text]

COVERAGE SUMMARY FOR SOURCE FILE [MessageEvent.java]

nameclass, %method, %block, %line, %
MessageEvent.java0%   (0/1)0%   (0/9)0%   (0/157)0%   (0/29)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MessageEvent0%   (0/1)0%   (0/9)0%   (0/157)0%   (0/29)
MessageEvent (Object, Message [], int): void 0%   (0/1)0%   (0/35)0%   (0/10)
MessageEvent (Object, Message, int): void 0%   (0/1)0%   (0/11)0%   (0/2)
assertValidType (int): void 0%   (0/1)0%   (0/19)0%   (0/3)
getMessage (): Message 0%   (0/1)0%   (0/3)0%   (0/1)
getMessages (): Message [] 0%   (0/1)0%   (0/3)0%   (0/1)
getType (): int 0%   (0/1)0%   (0/3)0%   (0/1)
internalString (): String 0%   (0/1)0%   (0/41)0%   (0/5)
readResolve (): Object 0%   (0/1)0%   (0/31)0%   (0/5)
toString (): String 0%   (0/1)0%   (0/11)0%   (0/1)

1/*
2 *  jDTAUS Core API
3 *  Copyright (C) 2005 Christian Schulte
4 *  <cs@schulte.it>
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 *
20 */
21package org.jdtaus.core.text;
22 
23import java.io.InvalidObjectException;
24import java.io.ObjectStreamException;
25import java.util.EventObject;
26import java.util.Locale;
27 
28/**
29 * Event holding messages.
30 *
31 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
32 * @version $JDTAUS: MessageEvent.java 8641 2012-09-27 06:45:17Z schulte $
33 *
34 * @see MessageEventSource
35 */
36public class MessageEvent extends EventObject
37{
38    //--Constants---------------------------------------------------------------
39 
40    /** Event constant for information messages. */
41    public static final int INFORMATION = 2001;
42 
43    /** Event constant for notification messages. */
44    public static final int NOTIFICATION = 2002;
45 
46    /** Event constant for warning messages. */
47    public static final int WARNING = 2003;
48 
49    /** Event constant for error messages. */
50    public static final int ERROR = 2004;
51 
52    /** Serial version UID for backwards compatibility with 1.0.x classes. */
53    private static final long serialVersionUID = 7335694054201632443L;
54 
55    //---------------------------------------------------------------Constants--
56    //--Constructors------------------------------------------------------------
57 
58    /**
59     * Creates a new {@code MessageEvent} instance taking a single message.
60     *
61     * @param source the source of the new event.
62     * @param message the message for the new event.
63     * @param type constant indicating the type of the events' messages.
64     *
65     * @throws NullPointerException if {@code message} is {@code null}.
66     * @throws IllegalArgumentException if {@code source} is {@code null} or
67     * {@code type} is not equal to one of the constants {@code INFORMATION},
68     * {@code NOTIFICATION}, {@code WARNING} or {@code ERROR}.
69     */
70    public MessageEvent( final Object source, final Message message,
71                         final int type )
72    {
73        this( source, new Message[]
74              {
75                  message
76              }, type );
77    }
78 
79    /**
80     * Creates a new {@code MessageEvent} instance taking multiple messages.
81     *
82     * @param source the source of the new event.
83     * @param messages the messages for the new event.
84     * @param type constant indicating the type of the events' messages.
85     *
86     * @throws NullPointerException if {@code messages} is {@code null}.
87     * @throws IllegalArgumentException if {@code source} is {@code null} or
88     * {@code type} is not equal to one of the constants {@code INFORMATION},
89     * {@code NOTIFICATION}, {@code WARNING} or {@code ERROR} or the length of
90     * {@code messages} is zero.
91     */
92    public MessageEvent( final Object source, final Message[] messages,
93                         final int type )
94    {
95        super( source );
96 
97        if ( messages == null )
98        {
99            throw new NullPointerException( "messages" );
100        }
101        if ( messages.length == 0 )
102        {
103            throw new IllegalArgumentException(
104                Integer.toString( messages.length ) );
105 
106        }
107 
108        this.assertValidType( type );
109 
110        this.message = messages[0];
111        this.messages = messages;
112        this.type = type;
113    }
114 
115    /**
116     * Checks an integer to be equal to one of the constants
117     * {@code INFORMATION}, {@code NOTIFICATION}, {@code WARNING} or
118     * {@code ERROR}.
119     *
120     * @param type the integer to check.
121     *
122     * @throws IllegalArgumentException if {@code type} is not equal to
123     * one of the constants {@code INFORMATION}, {@code NOTIFICATION},
124     * {@code WARNING} and {@code ERROR}.
125     */
126    private void assertValidType( final int type )
127    {
128        if ( type != INFORMATION && type != NOTIFICATION &&
129            type != WARNING && type != ERROR )
130        {
131            throw new IllegalArgumentException( Integer.toString( type ) );
132        }
133    }
134 
135    //------------------------------------------------------------Constructors--
136    //--MessageEvent------------------------------------------------------------
137 
138    /**
139     * Single message of the event.
140     * <p>Kept for backward compatibility with 1.0.x object streams.</p>
141     * @serial
142     */
143    private final Message message;
144 
145    /**
146     * Messages of the event.
147     * @serial
148     */
149    private Message[] messages;
150 
151    /**
152     * Type of the event.
153     * @serial
154     */
155    private final int type;
156 
157    /**
158     * Getter for property {@code message}.
159     *
160     * @return the single message of the event.
161     *
162     * @deprecated Replaced by {@link #getMessages()}.
163     */
164    public final Message getMessage()
165    {
166        return this.message;
167    }
168 
169    /**
170     * Getter for property {@code messages}.
171     *
172     * @return the messages of the event.
173     */
174    public final Message[] getMessages()
175    {
176        return this.messages;
177    }
178 
179    /**
180     * Getter for property {@code type}.
181     *
182     * @return the type of the events' messages.
183     */
184    public final int getType()
185    {
186        return this.type;
187    }
188 
189    /**
190     * Creates a string representing the properties of the instance.
191     *
192     * @return a string representing the properties of the instance.
193     */
194    private String internalString()
195    {
196        final StringBuffer buf = new StringBuffer( 500 ).append( '{' );
197        buf.append( "type=" ).append( this.type );
198 
199        for ( int i = 0; i < this.messages.length; i++ )
200        {
201            buf.append( ", messages[" ).append( i ).append( "]=" ).
202                append( this.messages[i] );
203 
204        }
205 
206        return buf.append( '}' ).toString();
207    }
208 
209    //------------------------------------------------------------MessageEvent--
210    //--Serializable------------------------------------------------------------
211 
212    /**
213     * Takes care of initializing the {@code messages} field when constructed
214     * from an 1.0.x object stream.
215     *
216     * @throws ObjectStreamException if no messages can be resolved.
217     */
218    private Object readResolve() throws ObjectStreamException
219    {
220        if ( this.message != null && this.messages == null )
221        {
222            this.messages = new Message[]
223                {
224                    this.message
225                };
226        }
227        else if ( !( this.message != null && this.messages != null ) )
228        {
229            throw new InvalidObjectException(
230                MessageEventBundle.getInstance().
231                getMissingMessagesMessage( Locale.getDefault() ) );
232 
233        }
234 
235        return this;
236    }
237 
238    //------------------------------------------------------------Serializable--
239    //--Object------------------------------------------------------------------
240 
241    /**
242     * Returns a string representation of the object.
243     *
244     * @return a string representation of the object.
245     */
246    public String toString()
247    {
248        return super.toString() + this.internalString();
249    }
250 
251    //------------------------------------------------------------------Object--
252}

[all classes][org.jdtaus.core.text]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov