EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][javax.measure.unit]

COVERAGE SUMMARY FOR SOURCE FILE [CompoundUnit.java]

nameclass, %method, %block, %line, %
CompoundUnit.java0%   (0/1)0%   (0/7)0%   (0/71)0%   (0/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CompoundUnit0%   (0/1)0%   (0/7)0%   (0/71)0%   (0/19)
CompoundUnit (Unit, Unit): void 0%   (0/1)0%   (0/20)0%   (0/7)
equals (Object): boolean 0%   (0/1)0%   (0/29)0%   (0/7)
getHigher (): Unit 0%   (0/1)0%   (0/3)0%   (0/1)
getLower (): Unit 0%   (0/1)0%   (0/3)0%   (0/1)
getStandardUnit (): Unit 0%   (0/1)0%   (0/4)0%   (0/1)
hashCode (): int 0%   (0/1)0%   (0/8)0%   (0/1)
toStandardUnit (): UnitConverter 0%   (0/1)0%   (0/4)0%   (0/1)

1/*
2 * JScience - Java(TM) Tools and Libraries for the Advancement of Sciences.
3 * Copyright (C) 2006 - JScience (http://jscience.org/)
4 * All rights reserved.
5 * 
6 * Permission to use, copy, modify, and distribute this software is
7 * freely granted, provided that this notice is preserved.
8 */
9package javax.measure.unit;
10 
11import javax.measure.converter.UnitConverter;
12import javax.measure.quantity.Quantity;
13 
14/**
15 * <p> This class represents the multi-radix units (such as "hour:min:sec"). 
16 *     Instances of this class are created using the {@link Unit#compound
17 *     Unit.compound} method.</p>
18 *      
19 * <p> Examples of compound units:[code]
20 *     Unit<Duration> HOUR_MINUTE_SECOND = HOUR.compound(MINUTE).compound(SECOND);
21 *     Unit<Angle> DEGREE_MINUTE_ANGLE = DEGREE_ANGLE.compound(MINUTE_ANGLE);
22 *     [/code]</p>
23 *
24 * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
25 * @version 3.1, April 22, 2006
26 */
27public final class CompoundUnit<Q extends Quantity> extends DerivedUnit<Q> {
28 
29    /**
30     * Holds the higher unit.
31     */
32    private final Unit<Q> _high;
33 
34    /**
35     * Holds the lower unit.
36     */
37    private final Unit<Q> _low;
38 
39    /**
40     * Creates a compound unit from the specified units. 
41     *
42     * @param  high the high unit.
43     * @param  low the lower unit(s)
44     * @throws IllegalArgumentException if both units do not the same system
45     *         unit.
46     */
47    CompoundUnit(Unit<Q> high, Unit<Q> low) {
48        if (!high.getStandardUnit().equals(low.getStandardUnit()))
49            throw new IllegalArgumentException(
50                    "Both units do not have the same system unit");
51        _high = high;
52        _low = low;
53        
54    }
55 
56    /**
57     * Returns the lower unit of this compound unit.
58     *
59     * @return the lower unit.
60     */
61    public Unit<Q> getLower() {
62        return _low;
63    }
64 
65    /**
66     * Returns the higher unit of this compound unit.
67     *
68     * @return the higher unit.
69     */
70    public Unit<Q> getHigher() {
71        return _high;
72    }
73 
74    /**
75     * Indicates if this compound unit is considered equals to the specified 
76     * object (both are compound units with same composing units in the 
77     * same order).
78     *
79     * @param  that the object to compare for equality.
80     * @return <code>true</code> if <code>this</code> and <code>that</code>
81     *         are considered equals; <code>false</code>otherwise. 
82     */
83    public boolean equals(Object that) {
84        if (this == that)
85            return true;
86        if (!(that instanceof CompoundUnit))
87            return false;
88        CompoundUnit<?> thatUnit = (CompoundUnit<?>) that;
89        return this._high.equals(thatUnit._high)
90                && this._low.equals(thatUnit._low);
91    }
92 
93    @Override
94    public int hashCode() {
95        return _high.hashCode() ^ _low.hashCode();
96    }
97 
98    @Override
99    public Unit<? super Q> getStandardUnit() {
100        return _low.getStandardUnit(); 
101    }
102 
103    @Override
104    public UnitConverter toStandardUnit() {
105        return _low.toStandardUnit();
106    }
107 
108    private static final long serialVersionUID = 1L;
109}

[all classes][javax.measure.unit]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov