View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans-Common.
5    *
6    * CosyBeans-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans-Common 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
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with CosyBeans-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.components.range2;
21  
22  import java.io.Serializable;
23  
24  /**
25   * This class stores values representing RangedValue. No checks are made for
26   * validity of the values. Only purpose of this class is to provide data
27   * transfer between <code>RangedValue</code> and <code>RangedValuePolicy</code>.
28   * As such, this class will normaly be used only internaly by 
29   * <code>RangedValue</code>.
30   * 
31   * @author <a href="mailto:ales.pucelj@cosylab.com">Ales Pucelj</a>
32   * @version $id$
33   */
34  public final class RangedValue implements Serializable {
35  
36  	private static final long serialVersionUID = 1L;
37  
38  	private double min;
39  	
40  	private double max;
41  	
42  	private double val;
43  	
44  	public RangedValue() {
45  		this(0, 100, 1);
46  	}
47  
48  	/**
49  	 * @param minimum double
50  	 * @param maximum double
51  	 * @param value double
52  	 */
53  	public RangedValue(double minimum, double maximum, double value) {
54  		min = minimum;
55  		max = maximum;
56  		val = value;
57  	}
58  	
59  	/**
60  	 * Returns the minimum.
61  	 * 
62  	 * @return minimum
63  	 */
64  	public final double getMinimum() {
65  		return min;
66  	}
67  	
68  	/**
69  	 * Returns the maximum.
70  	 * 
71  	 * @return maximum
72  	 */
73  	public final double getMaximum() {
74  		return max;
75  	}
76  	
77  	/**
78  	 * Returns the value.
79  	 * 
80  	 * @return value
81  	 */
82  	public final double getValue() {
83  		return val;
84  	}
85  		
86  	/**
87  	 * Check if the value is valid within bounds.
88  	 * 
89  	 * @return
90  	 */
91  	public final boolean isValid() {
92  		return ((min <= val) && (val <= max));
93  	}
94  	
95  	/*
96  	 * (non-Javadoc)
97  	 * @see java.lang.Object#toString()
98  	 */
99  	public String toString() {
100 		return getClass().getName()+" { min = "+min+", max = "+max+", val = "+val+" }";
101 	}
102 	
103 	/**
104 	 * Returns a new RangedValue with min/max the same as this object, but with the
105 	 * given value.
106 	 * 
107 	 * @param value new value for the RangedValue
108 	 * @return new RangedValue
109 	 */
110 	public RangedValue deriveWithValue(double value) {
111 		return new RangedValue(min, max, value);
112 	}
113 	
114 	/**
115 	 * Returns a new RangedValue with min and value the same as this object, but with the
116 	 * given maximum.
117 	 * 
118 	 * @param maximum new maximum for the RangedValue
119 	 * @return new RangedValue
120 	 */
121 	public RangedValue deriveWithMax(double maximum) {
122 		return new RangedValue(min, maximum, val);
123 	}
124 	
125 	/**
126 	 * Returns a new RangedValue with max and value the same as this object, but with the
127 	 * given minimum.
128 	 * 
129 	 * @param value new minimum for the RangedValue
130 	 * @return new RangedValue
131 	 */
132 	public RangedValue deriveWithMin(double minimum) {
133 		return new RangedValue(minimum, max, val);
134 	}
135 	
136 }