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

COVERAGE SUMMARY FOR SOURCE FILE [Messages.java]

nameclass, %method, %block, %line, %
Messages.java100% (1/1)0%   (0/13)0%   (0/253)0%   (0/63)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Messages100% (1/1)0%   (0/13)0%   (0/253)0%   (0/63)
Messages (): void 0%   (0/1)0%   (0/3)0%   (0/2)
addMessage (Message): void 0%   (0/1)0%   (0/21)0%   (0/6)
addMessages (Message []): void 0%   (0/1)0%   (0/22)0%   (0/5)
addMessages (Messages): void 0%   (0/1)0%   (0/25)0%   (0/6)
clear (): void 0%   (0/1)0%   (0/12)0%   (0/4)
clone (): Object 0%   (0/1)0%   (0/33)0%   (0/8)
getMessage (int): Message 0%   (0/1)0%   (0/16)0%   (0/3)
getMessages (): Message [] 0%   (0/1)0%   (0/18)0%   (0/3)
getMessages (Class): Messages 0%   (0/1)0%   (0/37)0%   (0/8)
removeMessage (Message): void 0%   (0/1)0%   (0/21)0%   (0/6)
removeMessages (Class): Messages 0%   (0/1)0%   (0/16)0%   (0/5)
removeMessages (Messages): void 0%   (0/1)0%   (0/25)0%   (0/6)
size (): int 0%   (0/1)0%   (0/4)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.Serializable;
24import java.util.Collection;
25import java.util.LinkedList;
26 
27/**
28 * Collection of messages.
29 *
30 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
31 * @version $JDTAUS: Messages.java 8743 2012-10-07 03:06:20Z schulte $
32 */
33public class Messages implements Cloneable, Serializable
34{
35    //--Constants---------------------------------------------------------------
36 
37    /** Serial version UID for backwards compatibility with 1.0.x classes. */
38    private static final long serialVersionUID = 834125519895929330L;
39 
40    //---------------------------------------------------------------Constants--
41    //--Messages----------------------------------------------------------------
42 
43    /**
44     * Value of property {@code messages}.
45     * @serial
46     */
47    private Collection messages;
48 
49    /** Creates a new {@code Messages} instance. */
50    public Messages()
51    {
52        super();
53    }
54 
55    /**
56     * Getter for property {@code messages}.
57     *
58     * @return messages held by the collection.
59     */
60    public Message[] getMessages()
61    {
62        if ( this.messages == null )
63        {
64            this.messages = new LinkedList();
65        }
66 
67        return ( Message[] ) this.messages.toArray(
68            new Message[ this.messages.size() ] );
69 
70    }
71 
72    /**
73     * Accessor to messages of a given type.
74     *
75     * @param type the type of the messages to return.
76     *
77     * @return a collection of messages of type {@code type}.
78     *
79     * @throws NullPointerException if {@code type} is {@code null}.
80     */
81    public final Messages getMessages( final Class type )
82    {
83        if ( type == null )
84        {
85            throw new NullPointerException( "type" );
86        }
87 
88        final Message[] msgs = this.getMessages();
89        final Messages ret = new Messages();
90        for ( int i = msgs.length - 1; i >= 0; i-- )
91        {
92            if ( type.isAssignableFrom( msgs[i].getClass() ) )
93            {
94                ret.addMessage( msgs[i] );
95            }
96        }
97 
98        return ret;
99    }
100 
101    /**
102     * Accessor to an indexed message.
103     *
104     * @param index the index of the message to return.
105     *
106     * @return a reference to the message at {@code index}.
107     *
108     * @throws IndexOutOfBoundsException if {@code index} is negativ,
109     * greater than or equal to {@code size()}.
110     */
111    public final Message getMessage( final int index )
112    {
113        if ( index < 0 || index >= this.size() )
114        {
115            throw new ArrayIndexOutOfBoundsException( index );
116        }
117 
118        return this.getMessages()[index];
119    }
120 
121    /**
122     * Adds a message to the collection.
123     *
124     * @param message the message to add to the collection.
125     *
126     * @throws NullPointerException if {@code message} is {@code null}.
127     */
128    public void addMessage( final Message message )
129    {
130        if ( message == null )
131        {
132            throw new NullPointerException( "message" );
133        }
134 
135        if ( this.messages == null )
136        {
137            this.messages = new LinkedList();
138        }
139 
140        this.messages.add( message );
141    }
142 
143    /**
144     * Adds messages to the collection.
145     *
146     * @param messages collection of messages to add to the collection.
147     *
148     * @throws NullPointerException if {@code messages} is {@code null}.
149     */
150    public final void addMessages( final Messages messages )
151    {
152        if ( messages == null )
153        {
154            throw new NullPointerException( "messages" );
155        }
156 
157        final Message[] msgs = messages.getMessages();
158        for ( int i = msgs.length - 1; i >= 0; i-- )
159        {
160            this.addMessage( msgs[i] );
161        }
162    }
163 
164    /**
165     * Adds an array of messages to the collection.
166     *
167     * @param messages array of messages to add to the collection.
168     *
169     * @throws NullPointerException if {@code messages} is {@code null} or
170     * contains {@code null} elements.
171     */
172    public final void addMessages( final Message[] messages )
173    {
174        if ( messages == null )
175        {
176            throw new NullPointerException( "messages" );
177        }
178 
179        for ( int i = messages.length - 1; i >= 0; i-- )
180        {
181            this.addMessage( messages[i] );
182        }
183    }
184 
185    /**
186     * Removes a message from the collection.
187     *
188     * @param message the message to remove from the collection.
189     *
190     * @throws NullPointerException if {@code message} is {@code null}.
191     */
192    public void removeMessage( final Message message )
193    {
194        if ( message == null )
195        {
196            throw new NullPointerException( "message" );
197        }
198 
199        if ( this.messages == null )
200        {
201            this.messages = new LinkedList();
202        }
203 
204        this.messages.remove( message );
205    }
206 
207    /**
208     * Removes messages from the collection.
209     *
210     * @param messages collection of messages to remove from the collection.
211     *
212     * @throws NullPointerException if {@code messages} is {@code null}.
213     */
214    public final void removeMessages( final Messages messages )
215    {
216        if ( messages == null )
217        {
218            throw new NullPointerException( "messages" );
219        }
220 
221        final Message[] msgs = messages.getMessages();
222        for ( int i = msgs.length - 1; i >= 0; i-- )
223        {
224            this.removeMessage( msgs[i] );
225        }
226    }
227 
228    /**
229     * Removes messages of a given type.
230     *
231     * @param type the type of the messages to remove.
232     *
233     * @return the collection of messages of type {@code type} removed from the
234     * collection.
235     *
236     * @throws NullPointerException if {@code type} is {@code null}.
237     */
238    public final Messages removeMessages( final Class type )
239    {
240        if ( type == null )
241        {
242            throw new NullPointerException( "type" );
243        }
244 
245        final Messages removed = this.getMessages( type );
246        this.removeMessages( removed );
247        return removed;
248    }
249 
250    /**
251     * Getter for property {@code size}.
252     *
253     * @return the number of elements in this collection.
254     */
255    public final int size()
256    {
257        return this.getMessages().length;
258    }
259 
260    /** Removes all messages from the collection. */
261    public void clear()
262    {
263        if ( this.messages == null )
264        {
265            this.messages = new LinkedList();
266        }
267 
268        this.messages.clear();
269    }
270 
271    //----------------------------------------------------------------Messages--
272    //--Object------------------------------------------------------------------
273 
274    /**
275     * Creates and returns a deep copy of this object.
276     *
277     * @return a clone of this instance.
278     */
279    public Object clone()
280    {
281        try
282        {
283            final Message[] msgs = this.getMessages();
284            final Messages ret = ( Messages ) super.clone();
285 
286            ret.clear();
287            for ( int i = msgs.length - 1; i >= 0; i-- )
288            {
289                ret.addMessage( ( Message ) msgs[i].clone() );
290            }
291 
292            return ret;
293        }
294        catch ( final CloneNotSupportedException e )
295        {
296            throw new AssertionError( e );
297        }
298    }
299 
300    //------------------------------------------------------------------Object--
301}

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