EMMA Coverage Report (generated Tue Mar 14 21:50:42 EST 2006)
[all classes][org.farng.mp3]

COVERAGE SUMMARY FOR SOURCE FILE [AbstractMP3Fragment.java]

nameclass, %method, %block, %line, %
AbstractMP3Fragment.java100% (1/1)100% (7/7)87%  (97/112)86%  (30.1/35)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AbstractMP3Fragment100% (1/1)100% (7/7)87%  (97/112)86%  (30.1/35)
isSubsetOf (Object): boolean 100% (1/1)74%  (32/43)68%  (6.8/10)
equals (Object): boolean 100% (1/1)90%  (37/41)87%  (11.3/13)
AbstractMP3Fragment (): void 100% (1/1)100% (3/3)100% (2/2)
AbstractMP3Fragment (AbstractMP3Fragment): void 100% (1/1)100% (12/12)100% (4/4)
AbstractMP3Fragment (AbstractMP3FragmentBody): void 100% (1/1)100% (6/6)100% (3/3)
getBody (): AbstractMP3FragmentBody 100% (1/1)100% (3/3)100% (1/1)
setBody (AbstractMP3FragmentBody): void 100% (1/1)100% (4/4)100% (2/2)

1package org.farng.mp3;
2 
3/**
4 * This class represents parts of tags. It contains methods that they all use use. ID3v2 tags have frames. Lyrics3 tags
5 * have fields. ID3v1 tags do not have parts. It also contains thier header while the body contains the actual
6 * fragments.
7 *
8 * @author Eric Farng
9 * @version $Revision: 1.2 $
10 */
11public abstract class AbstractMP3Fragment extends AbstractMP3FileItem {
12 
13    /**
14     * actual data this fragment holds
15     */
16    private AbstractMP3FragmentBody body;
17 
18    /**
19     * Creates a new AbstractMP3Fragment object.
20     */
21    protected AbstractMP3Fragment() {
22        super();
23    }
24 
25    /**
26     * Creates a new AbstractMP3Fragment object.
27     */
28    protected AbstractMP3Fragment(final AbstractMP3FragmentBody body) {
29        super();
30        this.body = body;
31    }
32 
33    /**
34     * Creates a new AbstractMP3Fragment object.
35     */
36    protected AbstractMP3Fragment(final AbstractMP3Fragment copyObject) {
37        super(copyObject);
38        final AbstractMP3FragmentBody copyObjectBody = copyObject.getBody();
39        body = (AbstractMP3FragmentBody) TagUtility.copyObject(copyObjectBody);
40    }
41 
42    /**
43     * Sets the body object for this fragment. The body object contains the actual information for the fragment.
44     *
45     * @param body the body object
46     */
47    public void setBody(final AbstractMP3FragmentBody body) {
48        this.body = body;
49    }
50 
51    /**
52     * Returns the body object for this fragment. The body object contains the actual information for the fragment.
53     *
54     * @return the body object
55     */
56    public AbstractMP3FragmentBody getBody() {
57        return body;
58    }
59 
60    /**
61     * Returns true if this object and it's body is a subset of the argument. This object is a subset if the argument is
62     * the same class.
63     *
64     * @param object object to determine if subset of
65     *
66     * @return true if this object and it's body is a subset of the argument.
67     */
68    public boolean isSubsetOf(final Object object) {
69        final boolean subsetOf;
70        final AbstractMP3FragmentBody localBody = body;
71        if (object == null) {
72            subsetOf = false;
73        } else if (!(object instanceof AbstractMP3Fragment)) {
74            subsetOf = false;
75        } else {
76            final AbstractMP3FragmentBody superSetBody = ((AbstractMP3Fragment) object).getBody();
77            if (localBody == null && superSetBody == null) {
78                subsetOf = true;
79            } else {
80                subsetOf = localBody != null &&
81                           superSetBody != null &&
82                           localBody.isSubsetOf(superSetBody) &&
83                           super.isSubsetOf(object);
84            }
85        }
86        return subsetOf;
87    }
88 
89    /**
90     * Returns true if this object and its body equals the argument and its body. this object is equal if and only if
91     * they are the same class and have the same <code>getIdentifier</code> id string.
92     *
93     * @param obj object to determine equality of
94     *
95     * @return true if this object and its body equals the argument and its body.
96     */
97    public boolean equals(final Object obj) {
98        final boolean equals;
99        if (obj instanceof AbstractMP3Fragment) {
100            final AbstractMP3Fragment abstractMP3Fragment = (AbstractMP3Fragment) obj;
101            final String equalsIdentifier = abstractMP3Fragment.getIdentifier();
102            final String thisIdentifier = getIdentifier();
103            if (thisIdentifier.equals(equalsIdentifier)) {
104                final AbstractMP3FragmentBody equalsBody = abstractMP3Fragment.getBody();
105                final AbstractMP3FragmentBody thisBody = getBody();
106                if (thisBody.equals(equalsBody)) {
107                    equals = super.equals(obj);
108                } else {
109                    equals = false;
110                }
111            } else {
112                equals = false;
113            }
114        } else {
115            equals = false;
116        }
117        return equals;
118    }
119}

[all classes][org.farng.mp3]
EMMA 2.0.5312 (C) Vladimir Roubtsov