1 /*
2
3 dsh-graph-io Directed graph readers and writers.
4 Copyright (c) 2008-2013 held jointly by the individual authors.
5
6 This library is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or (at
9 your option) any later version.
10
11 This library is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with this library; if not, write to the Free Software Foundation,
18 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
19
20 > http://www.fsf.org/licensing/licenses/lgpl.html
21 > http://www.opensource.org/licenses/lgpl-license.php
22
23 */
24 package org.dishevelled.graph.io.ygraphml;
25
26 /**
27 * Edge label.
28 *
29 * @author Michael Heuer
30 * @version $Revision$ $Date$
31 */
32 public final class EdgeLabel
33 {
34 /** True if this edge label is visible. */
35 private final boolean visible;
36
37 /** Alignment for this edge label. */
38 private final String alignment;
39
40 /** Font family for this edge label. */
41 private final String fontFamily;
42
43 /** Font size for this edge label. */
44 private final int fontSize;
45
46 /** Font style for this edge label. */
47 private final String fontStyle;
48
49 /** Text color for this edge label. */
50 private final String textColor;
51
52 /** Model name for this edge label. */
53 private final String modelName;
54
55 /** Model position for this edge label. */
56 private final String modelPosition;
57
58 /** Preferred placement for this edge label. */
59 private final String preferredPlacement;
60
61 /** Distance for this edge label. */
62 private final double distance;
63
64 /** Ratio for this edge label. */
65 private final double ratio;
66
67 /** Text for this edge label. */
68 private final String text;
69
70
71 /**
72 * Create a new edge label from the specified parameters.
73 *
74 * @param visible true if this edge label is visible
75 * @param alignment alignment for this edge label, must not be null
76 * @param fontFamily font family for this edge label, must not be null
77 * @param fontSize font size for this edge label
78 * @param fontStyle font style for this edge label, must not be null
79 * @param textColor text color for this edge label, must not be null
80 * @param modelName model name for this edge label, must not be null
81 * @param modelPosition model position for this edge label, must not be null
82 * @param preferredPlacement preferred placement for this edge label, must not be null
83 * @param distance distance for this edge label
84 * @param ratio ratio for this edge label
85 * @param text text for this edge label, must not be null
86 */
87 public EdgeLabel(final boolean visible,
88 final String alignment,
89 final String fontFamily,
90 final int fontSize,
91 final String fontStyle,
92 final String textColor,
93 final String modelName,
94 final String modelPosition,
95 final String preferredPlacement,
96 final double distance,
97 final double ratio,
98 final String text)
99 {
100 if (alignment == null)
101 {
102 throw new IllegalArgumentException("alignment must not be null");
103 }
104 if (fontFamily == null)
105 {
106 throw new IllegalArgumentException("fontFamily must not be null");
107 }
108 if (fontStyle == null)
109 {
110 throw new IllegalArgumentException("fontStyle must not be null");
111 }
112 if (textColor == null)
113 {
114 throw new IllegalArgumentException("textColor must not be null");
115 }
116 if (modelName == null)
117 {
118 throw new IllegalArgumentException("modelName must not be null");
119 }
120 if (modelPosition == null)
121 {
122 throw new IllegalArgumentException("modelPosition must not be null");
123 }
124 if (preferredPlacement == null)
125 {
126 throw new IllegalArgumentException("preferredPlacement must not be null");
127 }
128 if (text == null)
129 {
130 throw new IllegalArgumentException("text must not be null");
131 }
132 this.visible = visible;
133 this.alignment = alignment;
134 this.fontFamily = fontFamily;
135 this.fontSize = fontSize;
136 this.fontStyle = fontStyle;
137 this.textColor = textColor;
138 this.modelName = modelName;
139 this.modelPosition = modelPosition;
140 this.preferredPlacement = preferredPlacement;
141 this.distance = distance;
142 this.ratio = ratio;
143 this.text = text;
144 }
145
146
147 /**
148 * Return true if this edge label is visible.
149 *
150 * @return true if this edge label is visible
151 */
152 public boolean isVisible()
153 {
154 return visible;
155 }
156
157 /**
158 * Return the alignment for this edge label.
159 * The alignment will not be null.
160 *
161 * @return the alignment for this edge label
162 */
163 public String getAlignment()
164 {
165 return alignment;
166 }
167
168 /**
169 * Return the font family for this edge label.
170 * The font family will not be null.
171 *
172 * @return the font family for this edge label
173 */
174 public String getFontFamily()
175 {
176 return fontFamily;
177 }
178
179 /**
180 * Return the font size for this edge label.
181 *
182 * @return the font size for this edge label
183 */
184 public int getFontSize()
185 {
186 return fontSize;
187 }
188
189 /**
190 * Return the font style for this edge label.
191 * The font style will not be null.
192 *
193 * @return the font style for this edge label
194 */
195 public String getFontStyle()
196 {
197 return fontStyle;
198 }
199
200 /**
201 * Return the text color for this edge label.
202 * The text color will not be null.
203 *
204 * @return the text color for this edge label
205 */
206 public String getTextColor()
207 {
208 return textColor;
209 }
210
211 /**
212 * Return the model name for this edge label.
213 * The model name will not be null.
214 *
215 * @return the model name for this edge label
216 */
217 public String getModelName()
218 {
219 return modelName;
220 }
221
222 /**
223 * Return the model position for this edge label.
224 * The model position will not be null.
225 *
226 * @return the model position for this edge label
227 */
228 public String getModelPosition()
229 {
230 return modelPosition;
231 }
232
233 /**
234 * Return the preferred placement for this edge label.
235 * The preferred placement will not be null.
236 *
237 * @return the preferred placement for this edge label
238 */
239 public String getPreferredPlacement()
240 {
241 return preferredPlacement;
242 }
243
244 /**
245 * Return the distance for this edge label.
246 *
247 * @return the distance for this edge label
248 */
249 public double getDistance()
250 {
251 return distance;
252 }
253
254 /**
255 * Return the ratio for this edge label.
256 *
257 * @return the ratio for this edge label
258 */
259 public double getRatio()
260 {
261 return ratio;
262 }
263
264 /**
265 * Return the text for this edge label.
266 * The text will not be null.
267 *
268 * @return the text for this edge label
269 */
270 public String getText()
271 {
272 return text;
273 }
274 }