create changelog entry
[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 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         @Override
25         protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
26                 super.addParams(c, elements);
27                 
28                 Rocket rocket = (Rocket) c;
29                 
30                 if (rocket.getDesigner().length() > 0) {
31                         elements.add("<designer>"
32                                         + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getDesigner())
33                                         + "</designer>");
34                 }
35                 if (rocket.getRevision().length() > 0) {
36                         elements.add("<revision>"
37                                         + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getRevision())
38                                         + "</revision>");
39                 }
40                 
41                 
42                 // Motor configurations
43                 String defId = rocket.getDefaultConfiguration().getMotorConfigurationID();
44                 for (String id : rocket.getMotorConfigurationIDs()) {
45                         if (id == null)
46                                 continue;
47                         
48                         String str = "<motorconfiguration configid=\"" + id + "\"";
49                         if (id.equals(defId))
50                                 str += " default=\"true\"";
51                         
52                         if (rocket.getMotorConfigurationName(id) == "") {
53                                 str += "/>";
54                         } else {
55                                 str += "><name>" + net.sf.openrocket.file.RocketSaver.escapeXML(rocket.getMotorConfigurationName(id))
56                                                 + "</name></motorconfiguration>";
57                         }
58                         elements.add(str);
59                 }
60                 
61                 // Reference diameter
62                 elements.add("<referencetype>" + rocket.getReferenceType().name().toLowerCase(Locale.ENGLISH)
63                                 + "</referencetype>");
64                 if (rocket.getReferenceType() == ReferenceType.CUSTOM) {
65                         elements.add("<customreference>" + rocket.getCustomReferenceLength()
66                                         + "</customreference>");
67                 }
68                 
69         }
70         
71 }