View Javadoc

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 }