1 /* ===========================================================
2  * JFreeChart : a free chart library for the Java(tm) platform
3  * ===========================================================
4  *
5  * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors.
6  *
7  * Project Info:  http://www.jfree.org/jfreechart/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
22  * USA.
23  *
24  * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
25  * Other names may be trademarks of their respective owners.]
26  *
27  * -------------------
28  * VectorDataItem.java
29  * -------------------
30  * (C) Copyright 2007-2009, by Object Refinery Limited.
31  *
32  * Original Author:  David Gilbert (for Object Refinery Limited);
33  * Contributor(s):   -;
34  *
35  * Changes
36  * -------
37  * 30-Jan-2007 : Version 1 (DG);
38  * 24-May-2007 : Added getVector(), renamed getDeltaX() --> getVectorX(),
39  *               and likewise for getDeltaY() (DG);
40  * 25-May-2007 : Moved from experimental to the main source tree (DG);
41  *
42  */
43 
44 package org.jfree.data.xy;
45 
46 import org.jfree.data.ComparableObjectItem;
47 
48 /**
49  * A data item representing data in the form (x, y, deltaX, deltaY), intended
50  * for use by the {@link VectorSeries} class.
51  *
52  * @since 1.0.6
53  */
54 public class VectorDataItem extends ComparableObjectItem {
55 
56     /**
57      * Creates a new instance of <code>VectorDataItem</code>.
58      *
59      * @param x  the x-value.
60      * @param y  the y-value.
61      * @param deltaX  the vector x.
62      * @param deltaY  the vector y.
63      */
VectorDataItem(double x, double y, double deltaX, double deltaY)64     public VectorDataItem(double x, double y, double deltaX, double deltaY) {
65         super(new XYCoordinate(x, y), new Vector(deltaX, deltaY));
66     }
67 
68     /**
69      * Returns the x-value.
70      *
71      * @return The x-value (never <code>null</code>).
72      */
getXValue()73     public double getXValue() {
74         XYCoordinate xy = (XYCoordinate) getComparable();
75         return xy.getX();
76     }
77 
78     /**
79      * Returns the y-value.
80      *
81      * @return The y-value.
82      */
getYValue()83     public double getYValue() {
84         XYCoordinate xy = (XYCoordinate) getComparable();
85         return xy.getY();
86     }
87 
88     /**
89      * Returns the vector.
90      *
91      * @return The vector (possibly <code>null</code>).
92      */
getVector()93     public Vector getVector() {
94         return (Vector) getObject();
95     }
96 
97     /**
98      * Returns the x-component for the vector.
99      *
100      * @return The x-component.
101      */
getVectorX()102     public double getVectorX() {
103         Vector vi = (Vector) getObject();
104         if (vi != null) {
105             return vi.getX();
106         }
107         else {
108             return Double.NaN;
109         }
110     }
111 
112     /**
113      * Returns the y-component for the vector.
114      *
115      * @return The y-component.
116      */
getVectorY()117     public double getVectorY() {
118         Vector vi = (Vector) getObject();
119         if (vi != null) {
120             return vi.getY();
121         }
122         else {
123             return Double.NaN;
124         }
125     }
126 
127 }
128