e27fa76c3df4e3d3da421f1bdde8b1c9a11dea9b
[debian/openrocket] / src / net / sf / openrocket / file / openrocket / RocketSaver.java
1 package net.sf.openrocket.file.openrocket;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import net.sf.openrocket.rocketcomponent.ReferenceType;
7 import net.sf.openrocket.rocketcomponent.Rocket;
8
9
10 public class RocketSaver extends RocketComponentSaver {
11
12         private static final RocketSaver instance = new RocketSaver();
13
14         public static ArrayList<String> getElements(net.sf.openrocket.rocketcomponent.RocketComponent c) {
15                 ArrayList<String> list = new ArrayList<String>();
16
17                 list.add("<rocket>");
18                 instance.addParams(c, list);
19                 list.add("</rocket>");
20
21                 return list;
22         }
23
24
25
26         @Override
27         protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
28                 super.addParams(c, elements);
29
30                 Rocket rocket = (Rocket) c;
31                 
32                 if (rocket.getDesigner().length() > 0) {
33                         elements.add("<designer>" 
34                                         + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getDesigner())
35                                         + "</designer>");
36                 }
37                 if (rocket.getRevision().length() > 0) {
38                         elements.add("<revision>" 
39                                         + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getRevision()) 
40                                         + "</revision>");
41                 }
42
43
44                 // Motor configurations
45                 String defId = rocket.getDefaultConfiguration().getMotorConfigurationID();
46                 for (String id : rocket.getMotorConfigurationIDs()) {
47                         if (id == null)
48                                 continue;
49
50                         String str = "<motorconfiguration configid=\"" + id + "\"";
51                         if (id.equals(defId))
52                                 str += " default=\"true\"";
53                         
54                         if (rocket.getMotorConfigurationName(id) == "") {
55                                 str += "/>";
56                         } else {
57                                 str += "><name>" + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getMotorConfigurationName(id))
58                                         + "</name></motorconfiguration>";
59                         }
60                         elements.add(str);
61                 }
62                 
63                 // Reference diameter
64                 elements.add("<referencetype>" + rocket.getReferenceType().name().toLowerCase()
65                                 + "</referencetype>");
66                 if (rocket.getReferenceType() == ReferenceType.CUSTOM) {
67                         elements.add("<customreference>" + rocket.getCustomReferenceLength()
68                                         + "</customreference>");
69                 }
70
71         }
72
73 }