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 }