001 package org.jgnuplot;
002
003 import java.io.File;
004
005 /**
006 * This class models graphs, defined in terms of functions or data files, that
007 * are used by the plot command.
008 *
009 * @author Pander
010 */
011 public class Graph {
012 private String itsDataFileName;
013
014 private String itsUsing;
015
016 private String itsDataModifiers;
017
018 private String itsFunction;
019
020 private String itsAxes;
021
022 private String itsName;
023
024 private int itsStyle;
025
026 private int itsLineType;
027
028 private int itsPointType;
029
030 // function
031 public Graph(String theFunction, int theAxes, String theName, int theStyle,
032 int theLineType, int thePointType) {
033 itsFunction = theFunction;
034 itsAxes = Axes.toString(theAxes);
035 itsName = theName;
036 itsStyle = theStyle;
037 itsLineType = theLineType;
038 itsPointType = thePointType;
039 }
040
041 // function
042 public Graph(String theFunction, int theAxes, String theName, int theStyle) {
043 itsFunction = theFunction;
044 itsAxes = Axes.toString(theAxes);
045 itsName = theName;
046 itsStyle = theStyle;
047 itsLineType = LineType.NOT_SPECIFIED;
048 itsPointType = PointType.NOT_SPECIFIED;
049 }
050
051 // function
052 public Graph(String theFunction, int theAxes, String theName) {
053 itsFunction = theFunction;
054 itsAxes = Axes.toString(theAxes);
055 itsName = theName;
056 itsStyle = Style.NOT_SPECIFIED;
057 itsLineType = LineType.NOT_SPECIFIED;
058 itsPointType = PointType.NOT_SPECIFIED;
059 }
060
061 // function
062 public Graph(String theFunction, int theAxes) {
063 itsFunction = theFunction;
064 itsAxes = Axes.toString(theAxes);
065 itsName = null;
066 itsStyle = Style.NOT_SPECIFIED;
067 itsLineType = LineType.NOT_SPECIFIED;
068 itsPointType = PointType.NOT_SPECIFIED;
069 }
070
071 // function
072 public Graph(String theFunction) {
073 itsFunction = theFunction;
074 itsAxes = Axes.toString(Axes.NOT_SPECIFIED);
075 itsName = null;
076 itsStyle = Style.NOT_SPECIFIED;
077 itsLineType = LineType.NOT_SPECIFIED;
078 itsPointType = PointType.NOT_SPECIFIED;
079 }
080
081 // datafile
082 public Graph(String theDataFileName, String theUsing,
083 String theDataModifiers, int theAxes, String theName, int theStyle,
084 int theLineType, int thePointType) {
085 if (theDataFileName == null) {
086 throw new IllegalArgumentException("DataFileName cannot be null");
087 }
088 // make path absolute for .plt file which is in temp directory
089 if (!theDataFileName.startsWith(File.separator)
090 && theDataFileName.charAt(1) != ':') {
091 itsDataFileName = (new File("")).getAbsolutePath() + File.separator
092 + theDataFileName;
093 }
094 else {
095 itsDataFileName = theDataFileName;
096 }
097 // escape backslashes
098 itsDataFileName = itsDataFileName.replaceAll("\\\\", "\\\\\\\\");
099 itsUsing = theUsing;
100 itsDataModifiers = theDataModifiers;
101 itsAxes = Axes.toString(theAxes);
102 itsName = theName;
103 itsStyle = theStyle;
104 itsLineType = theLineType;
105 itsPointType = thePointType;
106 }
107
108 // datafile
109 public Graph(String theDataFileName, String theUsing, int theAxes,
110 String theName, int theStyle, int theLineType, int thePointType) {
111 if (theDataFileName == null) {
112 throw new IllegalArgumentException("DataFileName cannot be null");
113 }
114 // make path absolute for .plt file which is in temp directory
115 if (!theDataFileName.startsWith(File.separator)
116 && theDataFileName.charAt(1) != ':') {
117 itsDataFileName = (new File("")).getAbsolutePath() + File.separator
118 + theDataFileName;
119 }
120 else {
121 itsDataFileName = theDataFileName;
122 }
123 // escape backslashes
124 itsDataFileName = itsDataFileName.replaceAll("\\\\", "\\\\\\\\");
125 itsUsing = theUsing;
126 itsAxes = Axes.toString(theAxes);
127 itsName = theName;
128 itsStyle = theStyle;
129 itsLineType = theLineType;
130 itsPointType = thePointType;
131 }
132
133 // datafile
134 public Graph(String theDataFileName, String theUsing, int theAxes,
135 int theStyle, int theLineType, int thePointType) {
136 if (theDataFileName == null) {
137 throw new IllegalArgumentException("DataFileName cannot be null");
138 }
139 // make path absolute for .plt file which is in temp directory
140 if (!theDataFileName.startsWith(File.separator)
141 && theDataFileName.charAt(1) != ':') {
142 itsDataFileName = (new File("")).getAbsolutePath() + File.separator
143 + theDataFileName;
144 }
145 else {
146 itsDataFileName = theDataFileName;
147 }
148 // escape backslashes
149 itsDataFileName = itsDataFileName.replaceAll("\\\\", "\\\\\\\\");
150 itsUsing = theUsing;
151 itsAxes = Axes.toString(theAxes);
152 itsName = "";
153 itsStyle = theStyle;
154 itsLineType = theLineType;
155 itsPointType = thePointType;
156 }
157
158 // datafile
159 public Graph(String theDataFileName, String theUsing, int theAxes,
160 String theName, int theStyle) {
161 if (theDataFileName == null) {
162 throw new IllegalArgumentException("DataFileName cannot be null");
163 }
164 // make path absolute for .plt file which is in temp directory
165 if (!theDataFileName.startsWith(File.separator)
166 && theDataFileName.charAt(1) != ':') {
167 itsDataFileName = (new File("")).getAbsolutePath() + File.separator
168 + theDataFileName;
169 }
170 else {
171 itsDataFileName = theDataFileName;
172 }
173 // escape backslashes
174 itsDataFileName = itsDataFileName.replaceAll("\\\\", "\\\\\\\\");
175 itsUsing = theUsing;
176 itsAxes = Axes.toString(theAxes);
177 itsName = theName;
178 itsStyle = theStyle;
179 itsLineType = LineType.NOT_SPECIFIED;
180 itsPointType = PointType.NOT_SPECIFIED;
181 }
182
183 public Graph(Graph theGraph) {
184 itsFunction = theGraph.getFunction();
185 itsDataFileName = theGraph.getDataFileName();
186 itsDataModifiers = theGraph.getDataModifiers();
187 itsUsing = theGraph.getUsing();
188 itsAxes = theGraph.getAxes();
189 itsName = theGraph.getName();
190 itsStyle = theGraph.getStyle();
191 itsLineType = theGraph.getLineType();
192 itsPointType = theGraph.getPointType();
193 }
194
195 public final void setFunction(String theFunction) {
196 itsFunction = theFunction;
197 itsDataFileName = null;
198 itsDataModifiers = null;
199 }
200
201 public final void setName(String theName) {
202 itsName = theName;
203 }
204
205 public final String getFunction() {
206 return itsFunction;
207 }
208
209 public final String getDataFileName() {
210 return itsDataFileName;
211 }
212
213 public final String getUsing() {
214 return itsUsing;
215 }
216
217 public final String getDataModifiers() {
218 return itsDataModifiers;
219 }
220
221 public final String getAxes() {
222 return itsAxes;
223 }
224
225 public final String getName() {
226 return itsName;
227 }
228
229 public final int getStyle() {
230 return itsStyle;
231 }
232
233 public final int getLineType() {
234 return itsLineType;
235 }
236
237 public final int getPointType() {
238 return itsPointType;
239 }
240
241 public final boolean isFunction() {
242 if (itsFunction == null) {
243 return false;
244 }
245 return true;
246 }
247 }