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

COVERAGE SUMMARY FOR SOURCE FILE [Module.java]

nameclass, %method, %block, %line, %
Module.java100% (1/1)71%  (15/21)73%  (172/236)65%  (33.3/51)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Module100% (1/1)71%  (15/21)73%  (172/236)65%  (33.3/51)
getDescription (): String 0%   (0/1)0%   (0/4)0%   (0/1)
getMessages (): Messages 0%   (0/1)0%   (0/11)0%   (0/3)
getProperties (): Properties 0%   (0/1)0%   (0/11)0%   (0/3)
setDescription (String): void 0%   (0/1)0%   (0/5)0%   (0/2)
setMessages (Messages): void 0%   (0/1)0%   (0/4)0%   (0/2)
setVersion (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
clone (): Object 100% (1/1)33%  (3/9)33%  (1/3)
readResolve (): Object 100% (1/1)64%  (14/22)60%  (3/5)
hashCode (): int 100% (1/1)77%  (10/13)76%  (0.8/1)
equals (Object): boolean 100% (1/1)80%  (32/40)91%  (4.5/5)
Module (): void 100% (1/1)100% (3/3)100% (2/2)
getImplementations (): Implementations 100% (1/1)100% (11/11)100% (3/3)
getName (): String 100% (1/1)100% (9/9)100% (3/3)
getSpecifications (): Specifications 100% (1/1)100% (11/11)100% (3/3)
getVersion (): String 100% (1/1)100% (3/3)100% (1/1)
internalString (): String 100% (1/1)100% (49/49)100% (3/3)
setImplementations (Implementations): void 100% (1/1)100% (4/4)100% (2/2)
setName (String): void 100% (1/1)100% (4/4)100% (2/2)
setProperties (Properties): void 100% (1/1)100% (4/4)100% (2/2)
setSpecifications (Specifications): void 100% (1/1)100% (4/4)100% (2/2)
toString (): String 100% (1/1)100% (11/11)100% (1/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.container;
22 
23import java.io.ObjectStreamException;
24import java.io.Serializable;
25 
26/**
27 * Module meta-data.
28 * <p>A module consists of the properties {@code name}, {@code description}
29 * and {@code version}. Property {@code name} holds the name of the module
30 * uniquely identifying the module in a collection of modules. Property
31 * {@code description} holds a textual description, property {@code version}
32 * a textual version of the module. A module defines specifications,
33 * implementations and properties.</p>
34 *
35 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
36 * @version $JDTAUS: Module.java 8743 2012-10-07 03:06:20Z schulte $
37 */
38public class Module extends ModelObject implements Cloneable, Serializable
39{
40    //--Constants---------------------------------------------------------------
41 
42    /** Serial version UID for backwards compatibility with 1.0.x classes. */
43    private static final long serialVersionUID = 2518888867819463746L;
44 
45    //---------------------------------------------------------------Constants--
46    //--Module------------------------------------------------------------------
47 
48    /**
49     * The specifications of the module.
50     * @serial
51     */
52    private Specifications specifications;
53 
54    /**
55     * The implementations of the module.
56     * @serial
57     */
58    private Implementations implementations;
59 
60    /**
61     * The properties of the module.
62     * @serial
63     */
64    private Properties properties;
65 
66    /**
67     * The messages of the module.
68     * @serial
69     */
70    private Messages messages;
71 
72    /**
73     * The description of the module.
74     * @serial
75     * @deprecated Replaced by property {@code documentation}.
76     */
77    private String description;
78 
79    /**
80     * The name of the module.
81     * @serial
82     */
83    private String name;
84 
85    /**
86     * The version of the module.
87     * @serial
88     */
89    private String version;
90 
91    /** Creates a new {@code Module} instance. */
92    public Module()
93    {
94        super();
95    }
96 
97    /**
98     * Gets the specifications of the module.
99     *
100     * @return the specifications of the module.
101     */
102    public Specifications getSpecifications()
103    {
104        if ( this.specifications == null )
105        {
106            this.specifications = new Specifications();
107        }
108 
109        return this.specifications;
110    }
111 
112    /**
113     * Setter for property {@code specifications}.
114     *
115     * @param value the new specifications of the module.
116     */
117    public void setSpecifications( final Specifications value )
118    {
119        this.specifications = value;
120    }
121 
122    /**
123     * Gets the implementations of the module.
124     *
125     * @return implementations of the module.
126     */
127    public Implementations getImplementations()
128    {
129        if ( this.implementations == null )
130        {
131            this.implementations = new Implementations();
132        }
133 
134        return this.implementations;
135    }
136 
137    /**
138     * Setter for property {@code implementations}.
139     *
140     * @param value the new implementations of the module.
141     */
142    public void setImplementations( final Implementations value )
143    {
144        this.implementations = value;
145    }
146 
147    /**
148     * Gets the properties of the module.
149     *
150     * @return the properties of the module.
151     */
152    public Properties getProperties()
153    {
154        if ( this.properties == null )
155        {
156            this.properties = new Properties();
157        }
158 
159        return this.properties;
160    }
161 
162    /**
163     * Setter for property {@code properties}.
164     *
165     * @param value the new properties of the module.
166     */
167    public void setProperties( final Properties value )
168    {
169        this.properties = value;
170    }
171 
172    /**
173     * Gets the messages of the module.
174     *
175     * @return the messages of the module.
176     */
177    public Messages getMessages()
178    {
179        if ( this.messages == null )
180        {
181            this.messages = new Messages();
182        }
183 
184        return this.messages;
185    }
186 
187    /**
188     * Setter for property {@code messages}.
189     *
190     * @param value new messages of the module.
191     */
192    public void setMessages( final Messages value )
193    {
194        this.messages = value;
195    }
196 
197    /**
198     * Gets the description of the module.
199     *
200     * @return the description of the module or {@code null}.
201     * @deprecated Replaced by {@link #getDocumentation() getDocumentation().getValue()}.
202     */
203    public String getDescription()
204    {
205        return this.getDocumentation().getValue();
206    }
207 
208    /**
209     * Setter for property {@code description}.
210     *
211     * @param value the new description of the module.
212     * @deprecated Replaced by {@link #setDocumentation(org.jdtaus.core.container.Text) getDocumentation().setValue( value )}.
213     */
214    public void setDescription( final String value )
215    {
216        this.getDocumentation().setValue( value );
217    }
218 
219    /**
220     * Gets the name of the module.
221     *
222     * @return the unique name of the module.
223     */
224    public String getName()
225    {
226        if ( this.name == null )
227        {
228            this.name = "";
229        }
230 
231        return this.name;
232    }
233 
234    /**
235     * Setter for property {@code name}.
236     *
237     * @param value the new name of the module.
238     */
239    public void setName( final String value )
240    {
241        this.name = value;
242    }
243 
244    /**
245     * Gets the version of the module.
246     *
247     * @return the version of the module or {@code null}.
248     */
249    public String getVersion()
250    {
251        return this.version;
252    }
253 
254    /**
255     * Setter for property {@code version}.
256     *
257     * @param value the new version of the module.
258     */
259    public void setVersion( final String value )
260    {
261        this.version = value;
262    }
263 
264    /**
265     * Creates a string representing the properties of the instance.
266     *
267     * @return a string representing the properties of the instance.
268     */
269    private String internalString()
270    {
271        final StringBuffer buf = new StringBuffer( 500 ).append( '{' ).
272            append( this.internalString( this ) ).
273            append( ", name=" ).append( this.name ).
274            append( ", version=" ).append( this.version ).
275            append( ", properties=" ).append( this.properties ).
276            append( ", messages=" ).append( this.messages ).
277            append( ", specifications=" ).append( this.getSpecifications() ).
278            append( ", implementations=" ).append( this.getImplementations() );
279 
280        buf.append( '}' ).toString();
281        return buf.toString();
282    }
283 
284    //------------------------------------------------------------------Module--
285    //--Serializable------------------------------------------------------------
286 
287    /**
288     * Takes care of initializing fields when constructed from an 1.0.x object
289     * stream.
290     *
291     * @throws ObjectStreamException if no scope can be resolved.
292     */
293    private Object readResolve() throws ObjectStreamException
294    {
295        if ( this.getDocumentation().getValue() == null &&
296            this.description != null )
297        {
298            this.getDocumentation().setValue( this.description );
299        }
300        if ( "".equals( this.version ) )
301        {
302            this.version = null;
303        }
304 
305        return this;
306    }
307 
308    //------------------------------------------------------------Serializable--
309    //--Object------------------------------------------------------------------
310 
311    /**
312     * Returns a string representation of the object.
313     *
314     * @return a string representation of the object.
315     */
316    public String toString()
317    {
318        return super.toString() + this.internalString();
319    }
320 
321    /**
322     * Creates and returns a copy of this object. This method  performs a
323     * "shallow copy" of this object, not a "deep copy" operation.
324     *
325     * @return a clone of this instance.
326     */
327    public Object clone()
328    {
329        try
330        {
331            return super.clone();
332        }
333        catch ( final CloneNotSupportedException e )
334        {
335            throw new AssertionError( e );
336        }
337    }
338 
339    /**
340     * Indicates whether some other object is equal to this one by comparing
341     * properties {@code name} and {@code version}.
342     *
343     * @param o the reference object with which to compare.
344     *
345     * @return {@code true} if this object is the same as {@code o};
346     * {@code false} otherwise.
347     */
348    public final boolean equals( final Object o )
349    {
350        boolean equal = this == o;
351 
352        if ( !equal && o instanceof Module )
353        {
354            final Module that = (Module) o;
355            equal = this.getName().equals( that.getName() ) &&
356                ( this.getVersion() == null ? that.getVersion() == null
357                : this.getVersion().equals( that.getVersion() ) );
358 
359        }
360 
361        return equal;
362    }
363 
364    /**
365     * Returns a hash code value for this object.
366     *
367     * @return a hash code value for this object.
368     */
369    public final int hashCode()
370    {
371        return this.getName().hashCode() +
372            ( this.getVersion() == null ? 0 : this.getVersion().hashCode() );
373 
374    }
375 
376    //------------------------------------------------------------------Object--
377}

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