1 package net.sf.openrocket.file.openrocket.savers;
3 import java.util.ArrayList;
6 import net.sf.openrocket.rocketcomponent.NoseCone;
7 import net.sf.openrocket.rocketcomponent.Transition;
10 public class TransitionSaver extends SymmetricComponentSaver {
12 private static final TransitionSaver instance = new TransitionSaver();
14 public static ArrayList<String> getElements(net.sf.openrocket.rocketcomponent.RocketComponent c) {
15 ArrayList<String> list = new ArrayList<String>();
17 list.add("<transition>");
18 instance.addParams(c, list);
19 list.add("</transition>");
26 * Note: This method must be capable of handling nose cones as well.
29 protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
30 super.addParams(c, elements);
31 net.sf.openrocket.rocketcomponent.Transition trans = (net.sf.openrocket.rocketcomponent.Transition) c;
32 boolean nosecone = (trans instanceof NoseCone);
35 Transition.Shape shape = trans.getType();
36 elements.add("<shape>" + shape.name().toLowerCase() + "</shape>");
37 if (shape.isClippable()) {
38 elements.add("<shapeclipped>" + trans.isClipped() + "</shapeclipped>");
40 if (shape.usesParameter()) {
41 elements.add("<shapeparameter>" + trans.getShapeParameter() + "</shapeparameter>");
46 if (trans.isForeRadiusAutomatic())
47 elements.add("<foreradius>auto</foreradius>");
49 elements.add("<foreradius>" + trans.getForeRadius() + "</foreradius>");
52 if (trans.isAftRadiusAutomatic())
53 elements.add("<aftradius>auto</aftradius>");
55 elements.add("<aftradius>" + trans.getAftRadius() + "</aftradius>");
59 elements.add("<foreshoulderradius>" + trans.getForeShoulderRadius()
60 + "</foreshoulderradius>");
61 elements.add("<foreshoulderlength>" + trans.getForeShoulderLength()
62 + "</foreshoulderlength>");
63 elements.add("<foreshoulderthickness>" + trans.getForeShoulderThickness()
64 + "</foreshoulderthickness>");
65 elements.add("<foreshouldercapped>" + trans.isForeShoulderCapped()
66 + "</foreshouldercapped>");
69 elements.add("<aftshoulderradius>" + trans.getAftShoulderRadius()
70 + "</aftshoulderradius>");
71 elements.add("<aftshoulderlength>" + trans.getAftShoulderLength()
72 + "</aftshoulderlength>");
73 elements.add("<aftshoulderthickness>" + trans.getAftShoulderThickness()
74 + "</aftshoulderthickness>");
75 elements.add("<aftshouldercapped>" + trans.isAftShoulderCapped()
76 + "</aftshouldercapped>");