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