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 }