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   * Poly line edge.
28   *
29   * @author  Michael Heuer
30   * @version $Revision$ $Date$
31   */
32  public final class PolyLineEdge
33  {
34      /** Line style for this poly line edge. */
35      private final LineStyle lineStyle;
36  
37      /** Arrows for this poly line edge. */
38      private final Arrows arrows;
39  
40      /** Edge label for this poly line edge. */
41      private final EdgeLabel edgeLabel;
42  
43      /** Bend style for this poly line edge. */
44      private final BendStyle bendStyle;
45  
46  
47      /**
48       * Create a new poly line edge from the specified parameters.
49       *
50       * @param lineStyle line style for this poly line edge, must not be null
51       * @param arrows arrows for this poly line edge, must not be null
52       * @param edgeLabel edge label for this poly line edge, must not be null
53       * @param bendStyle bend style for this poly line edge, must not be null
54       */
55      public PolyLineEdge(final LineStyle lineStyle,
56                          final Arrows arrows,
57                          final EdgeLabel edgeLabel,
58                          final BendStyle bendStyle)
59      {
60          if (lineStyle == null)
61          {
62              throw new IllegalArgumentException("lineStyle must not be null");
63          }
64          if (arrows == null)
65          {
66              throw new IllegalArgumentException("arrows must not be null");
67          }
68          if (edgeLabel == null)
69          {
70              throw new IllegalArgumentException("edgeLabel must not be null");
71          }
72          if (bendStyle == null)
73          {
74              throw new IllegalArgumentException("bendStyle must not be null");
75          }
76          this.lineStyle = lineStyle;
77          this.arrows = arrows;
78          this.edgeLabel = edgeLabel;
79          this.bendStyle = bendStyle;
80      }
81  
82  
83      /**
84       * Return the line style for this poly line edge.
85       * The line style will not be null.
86       *
87       * @return the line style for this poly line edge
88       */
89      public LineStyle getLineStyle()
90      {
91          return lineStyle;
92      }
93  
94      /**
95       * Return the arrows for this poly line edge.
96       * The arrows will not be null.
97       *
98       * @return the arrows for this poly line edge
99       */
100     public Arrows getArrows()
101     {
102         return arrows;
103     }
104 
105     /**
106      * Return the edge label for this poly line edge.
107      * The edge label will not be null.
108      *
109      * @return the edge label for this poly line edge
110      */
111     public EdgeLabel getEdgeLabel()
112     {
113         return edgeLabel;
114     }
115 
116     /**
117      * Return the bend style for this poly line edge.
118      * The bend style will not be null.
119      *
120      * @return the bend style for this poly line edge
121      */
122     public BendStyle getBendStyle()
123     {
124         return bendStyle;
125     }
126 }