~andreas.hoelzl/jhelioviewer/jhv-formatting

« back to all changes in this revision

Viewing changes to base/src/org/helioviewer/base/math/Interval.java

  • Committer: Andreas Hoelzl
  • Date: 2010-03-23 19:37:12 UTC
  • Revision ID: andreas_hoelzl_23@hotmail.com-20100323193712-wgx872c3tpo3y729
formattingĀ changed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
package org.helioviewer.base.math;
2
2
 
3
3
/**
4
 
 * An immutable Interval class, used for integer ranges.  Both end points are
 
4
 * An immutable Interval class, used for integer ranges. Both end points are
5
5
 * considered to be included in the interval (open interval).
 
6
 * 
6
7
 * @author caplins
7
 
 *
 
8
 * 
8
9
 */
9
10
public class Interval {
10
 
        
11
 
        /** The left side of the interval.  Guaranteed that leftSide <= rightSide. */
12
 
        public final int leftSide;
13
 
        
14
 
        /** The right side of the interval.  Guaranteed that leftSide <= rightSide. */
15
 
        public final int rightSide;
16
 
        
17
 
        
18
 
        public final int width;
19
 
        
20
 
        /**
21
 
         * Simple constructor that takes two points on the number line.
22
 
         * @param _a
23
 
         * @param _b
24
 
         */
25
 
        public Interval(int _a, int _b){
26
 
                leftSide = Math.min(_a, _b);
27
 
                rightSide = Math.max(_a, _b);
28
 
                width = rightSide - leftSide;
29
 
        }
30
 
        
31
 
        /** Tests to see if the value is contained on the interval. */
32
 
        public boolean containsValue(Number _val) {return (leftSide<=_val.doubleValue() && _val.doubleValue()<=rightSide);}
33
 
        
34
 
        /** Returns the number of integers contained in the interval */
35
 
        public int getNumValues() {return rightSide-leftSide+1;}
36
 
        
37
 
        /** Attempts to map the value to the interval, 'squeezing' it if necessary. */
38
 
        public int squeeze(int _val) {
39
 
                if(_val > rightSide)
40
 
                        return rightSide;
41
 
                else if(_val < leftSide)
42
 
                        return leftSide;
43
 
                else
44
 
                        return _val;
45
 
        }
46
 
        
47
 
        /** Overridden equals method */
48
 
        public boolean equals(Object _obj){
49
 
                if(_obj == null) return false;
50
 
                else if(!(_obj instanceof Interval)) return false;
51
 
                else{
52
 
                        Interval i = Interval.class.cast(_obj);
53
 
                        return (i.leftSide == leftSide && i.rightSide == rightSide);
54
 
                }
55
 
        }
56
 
        
57
 
        /** Overridden toString method */
58
 
        public String toString(){
59
 
                String ret = "[Interval=";
60
 
                ret += "[leftSize="+leftSide+"]";
61
 
                ret += "[rightSize="+rightSide+"]";
62
 
                ret += "[width="+width+"]";
63
 
                ret += "]";
64
 
                return ret;
65
 
        }
66
 
        
67
 
        
 
11
 
 
12
    /** The left side of the interval. Guaranteed that leftSide <= rightSide. */
 
13
    public final int leftSide;
 
14
 
 
15
    /** The right side of the interval. Guaranteed that leftSide <= rightSide. */
 
16
    public final int rightSide;
 
17
 
 
18
    public final int width;
 
19
 
 
20
    /**
 
21
     * Simple constructor that takes two points on the number line.
 
22
     * 
 
23
     * @param _a
 
24
     * @param _b
 
25
     */
 
26
    public Interval(int _a, int _b) {
 
27
        leftSide = Math.min(_a, _b);
 
28
        rightSide = Math.max(_a, _b);
 
29
        width = rightSide - leftSide;
 
30
    }
 
31
 
 
32
    /** Tests to see if the value is contained on the interval. */
 
33
    public boolean containsValue(Number _val) {
 
34
        return (leftSide <= _val.doubleValue() && _val.doubleValue() <= rightSide);
 
35
    }
 
36
 
 
37
    /** Returns the number of integers contained in the interval */
 
38
    public int getNumValues() {
 
39
        return rightSide - leftSide + 1;
 
40
    }
 
41
 
 
42
    /** Attempts to map the value to the interval, 'squeezing' it if necessary. */
 
43
    public int squeeze(int _val) {
 
44
        if (_val > rightSide)
 
45
            return rightSide;
 
46
        else if (_val < leftSide)
 
47
            return leftSide;
 
48
        else
 
49
            return _val;
 
50
    }
 
51
 
 
52
    /** Overridden equals method */
 
53
    public boolean equals(Object _obj) {
 
54
        if (_obj == null)
 
55
            return false;
 
56
        else if (!(_obj instanceof Interval))
 
57
            return false;
 
58
        else {
 
59
            Interval i = Interval.class.cast(_obj);
 
60
            return (i.leftSide == leftSide && i.rightSide == rightSide);
 
61
        }
 
62
    }
 
63
 
 
64
    /** Overridden toString method */
 
65
    public String toString() {
 
66
        String ret = "[Interval=";
 
67
        ret += "[leftSize=" + leftSide + "]";
 
68
        ret += "[rightSize=" + rightSide + "]";
 
69
        ret += "[width=" + width + "]";
 
70
        ret += "]";
 
71
        return ret;
 
72
    }
 
73
 
68
74
};
 
 
b'\\ No newline at end of file'