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   * Node label.
28   *
29   * @author  Michael Heuer
30   * @version $Revision$ $Date$
31   */
32  public final class NodeLabel
33  {
34      /** True if this node label is visible. */
35      private final boolean visible;
36  
37      /** Alignment for this node label. */
38      private final String alignment;
39  
40      /** Font family for this node label. */
41      private final String fontFamily;
42  
43      /** Font size for this node label. */
44      private final int fontSize;
45  
46      /** Font style for this node label. */
47      private final String fontStyle;
48  
49      /** Text color for this node label. */
50      private final String textColor;
51  
52      /** Model name for this node label. */
53      private final String modelName;
54  
55      /** Model position for this node label. */
56      private final String modelPosition;
57  
58      /** Auto size policy for this node label. */
59      private final String autoSizePolicy;
60  
61      /** Text for this node label. */
62      private final String text;
63  
64  
65      /**
66       * Create a new node label from the specified parameters.
67       *
68       * @param visible true if this node label is visible
69       * @param alignment alignment for this node label, must not be null
70       * @param fontFamily font family for this node label, must not be null
71       * @param fontSize font size for this node label
72       * @param fontStyle font style for this node label, must not be null
73       * @param textColor text color for this node label, must not be null
74       * @param modelName model name for this node label, must not be null
75       * @param modelPosition model position for this node label, must not be null
76       * @param autoSizePolicy auto size policy for this node label, must not be null
77       * @param text text for this node label, must not be null
78       */
79      public NodeLabel(final boolean visible,
80                       final String alignment,
81                       final String fontFamily,
82                       final int fontSize,
83                       final String fontStyle,
84                       final String textColor,
85                       final String modelName,
86                       final String modelPosition,
87                       final String autoSizePolicy,
88                       final String text)
89      {
90          if (alignment == null)
91          {
92              throw new IllegalArgumentException("alignment must not be null");
93          }
94          if (fontFamily == null)
95          {
96              throw new IllegalArgumentException("fontFamily must not be null");
97          }
98          if (fontStyle == null)
99          {
100             throw new IllegalArgumentException("fontStyle must not be null");
101         }
102         if (textColor == null)
103         {
104             throw new IllegalArgumentException("textColor must not be null");
105         }
106         if (modelName == null)
107         {
108             throw new IllegalArgumentException("modelName must not be null");
109         }
110         if (modelPosition == null)
111         {
112             throw new IllegalArgumentException("modelPosition must not be null");
113         }
114         if (autoSizePolicy == null)
115         {
116             throw new IllegalArgumentException("autoSizePolicy must not be null");
117         }
118         if (text == null)
119         {
120             throw new IllegalArgumentException("text must not be null");
121         }
122         this.visible = visible;
123         this.alignment = alignment;
124         this.fontFamily = fontFamily;
125         this.fontSize = fontSize;
126         this.fontStyle = fontStyle;
127         this.textColor = textColor;
128         this.modelName = modelName;
129         this.modelPosition = modelPosition;
130         this.autoSizePolicy = autoSizePolicy;
131         this.text = text;
132     }
133 
134 
135     /**
136      * Return true if this node label is visible.
137      *
138      * @return true if this node label is visible
139      */
140     public boolean isVisible()
141     {
142         return visible;
143     }
144 
145     /**
146      * Return the alignment for this node label.
147      * The alignment will not be null.
148      *
149      * @return the alignment for this node label
150      */
151     public String getAlignment()
152     {
153         return alignment;
154     }
155 
156     /**
157      * Return the font family for this node label.
158      * The font family will not be null.
159      *
160      * @return the font family for this node label
161      */
162     public String getFontFamily()
163     {
164         return fontFamily;
165     }
166 
167     /**
168      * Return the font size for this node label.
169      *
170      * @return the font size for this node label
171      */
172     public int getFontSize()
173     {
174         return fontSize;
175     }
176 
177     /**
178      * Return the font style for this node label.
179      * The font style will not be null.
180      *
181      * @return the font style for this node label
182      */
183     public String getFontStyle()
184     {
185         return fontStyle;
186     }
187 
188     /**
189      * Return the text color for this node label.
190      * The text color will not be null.
191      *
192      * @return the text color for this node label
193      */
194     public String getTextColor()
195     {
196         return textColor;
197     }
198 
199     /**
200      * Return the model name for this node label.
201      * The model name will not be null.
202      *
203      * @return the model name for this node label
204      */
205     public String getModelName()
206     {
207         return modelName;
208     }
209 
210     /**
211      * Return the model position for this node label.
212      * The model position will not be null.
213      *
214      * @return the model position for this node label
215      */
216     public String getModelPosition()
217     {
218         return modelPosition;
219     }
220 
221     /**
222      * Return the auto size policy for this node label.
223      * The auto size policy will not be null.
224      *
225      * @return the auto size policy for this node label
226      */
227     public String getAutoSizePolicy()
228     {
229         return autoSizePolicy;
230     }
231 
232     /**
233      * Return the text for this node label.
234      * The text will not be null.
235      *
236      * @return the text for this node label
237      */
238     public String getText()
239     {
240         return text;
241     }
242 }