View Javadoc

1   /*
2    * Copyright (c) 2003-2008, by Henrik Arro and Contributors
3    *
4    * This file is part of JSeq, a tool to automatically create
5    * sequence diagrams by tracing program execution.
6    *
7    * See <http://jseq.sourceforge.net> for more information.
8    *
9    * JSeq is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of
12   * the License, or (at your option) any later version.
13   *
14   * JSeq is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17   * GNU Lesser General Public License for more details.
18   *
19   * You should have received a copy of the GNU Lesser General Public License
20   * along with JSeq. If not, see <http://www.gnu.org/licenses/>.
21   */
22  
23  package th.co.edge.jseq.argouml.pgml;
24  
25  import org.w3c.dom.Document;
26  import org.w3c.dom.Element;
27  
28  import th.co.edge.jseq.util.XMLUtil;
29  
30  /**
31   * A <code>Fig</code> represents a PGML figure of some kind.
32   */
33  public abstract class Fig {
34      private String name;
35      private Fill fill;
36      private FillColor fillColor;
37      private Stroke stroke;
38      private StrokeColor strokeColor;
39  
40      /**
41       * Creates a new <code>Fig</code>.
42       * 
43       * @param name
44       *            the name of the new <code>Fig</object>
45       * @param fill determines if the figure should be filled or not
46       * 
47       * @param fillColor if the figure should be filled, determines the color to use
48       * @param stroke determines if the figure should be stroked or not
49       * @param strokeColor if the figure should be stroked, determines the color to use
50       */
51      public Fig(String name, Fill fill, FillColor fillColor, Stroke stroke,
52              StrokeColor strokeColor) {
53          this.name = name;
54          this.fill = fill;
55          this.fillColor = fillColor;
56          this.stroke = stroke;
57          this.strokeColor = strokeColor;
58      }
59  
60      public abstract Element getXML(Document doc);
61  
62      protected Element createElement(Document doc, String tag) {
63          Element element = doc.createElement(tag);
64          element.setAttribute("name", XMLUtil.makeXMLSafe(getName()));
65          element.setAttribute("fill", getFill().getStringValue());
66          element.setAttribute("fillcolor", getFillColor().getStringValue());
67          element.setAttribute("stroke", getStroke().getStringValue());
68          element.setAttribute("strokecolor", getStrokeColor().getStringValue());
69          return element;
70      }
71  
72      //
73      // Getters
74      //
75  
76      /**
77       * Returns the name of this figure object.
78       * 
79       * @return the name of this figure object
80       */
81      public String getName() {
82          return name;
83      }
84  
85      /**
86       * Returns the stroke attribute of this figure object, that is, whether or
87       * not this figure should be filled.
88       * 
89       * @return the stroke attribute of this figure object
90       */
91      public Fill getFill() {
92          return fill;
93      }
94  
95      /**
96       * Returns the fill color of this figure object, that is, if this figure
97       * should be filled, the color to use.
98       * 
99       * @return the fill color of this figure object
100      */
101     public FillColor getFillColor() {
102         return fillColor;
103     }
104 
105     /**
106      * Returns the stroke attribute of this figure object, that is, whether or not 
107      * 
108      * @return
109      */
110     public Stroke getStroke() {
111         return stroke;
112     }
113 
114     public StrokeColor getStrokeColor() {
115         return strokeColor;
116     }
117 }