1 package net.sf.openrocket.file.openrocket.savers;
3 import java.util.ArrayList;
5 import java.util.Locale;
7 import net.sf.openrocket.rocketcomponent.NoseCone;
8 import net.sf.openrocket.rocketcomponent.Transition;
11 public class TransitionSaver extends SymmetricComponentSaver {
13 private static final TransitionSaver instance = new TransitionSaver();
15 public static ArrayList<String> getElements(net.sf.openrocket.rocketcomponent.RocketComponent c) {
16 ArrayList<String> list = new ArrayList<String>();
18 list.add("<transition>");
19 instance.addParams(c, list);
20 list.add("</transition>");
27 * Note: This method must be capable of handling nose cones as well.
30 protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
31 super.addParams(c, elements);
32 net.sf.openrocket.rocketcomponent.Transition trans = (net.sf.openrocket.rocketcomponent.Transition) c;
33 boolean nosecone = (trans instanceof NoseCone);
36 Transition.Shape shape = trans.getType();
37 elements.add("<shape>" + shape.name().toLowerCase(Locale.ENGLISH) + "</shape>");
38 if (shape.isClippable()) {
39 elements.add("<shapeclipped>" + trans.isClipped() + "</shapeclipped>");
41 if (shape.usesParameter()) {
42 elements.add("<shapeparameter>" + trans.getShapeParameter() + "</shapeparameter>");
47 if (trans.isForeRadiusAutomatic())
48 elements.add("<foreradius>auto</foreradius>");
50 elements.add("<foreradius>" + trans.getForeRadius() + "</foreradius>");
53 if (trans.isAftRadiusAutomatic())
54 elements.add("<aftradius>auto</aftradius>");
56 elements.add("<aftradius>" + trans.getAftRadius() + "</aftradius>");
60 elements.add("<foreshoulderradius>" + trans.getForeShoulderRadius()
61 + "</foreshoulderradius>");
62 elements.add("<foreshoulderlength>" + trans.getForeShoulderLength()
63 + "</foreshoulderlength>");
64 elements.add("<foreshoulderthickness>" + trans.getForeShoulderThickness()
65 + "</foreshoulderthickness>");
66 elements.add("<foreshouldercapped>" + trans.isForeShoulderCapped()
67 + "</foreshouldercapped>");
70 elements.add("<aftshoulderradius>" + trans.getAftShoulderRadius()
71 + "</aftshoulderradius>");
72 elements.add("<aftshoulderlength>" + trans.getAftShoulderLength()
73 + "</aftshoulderlength>");
74 elements.add("<aftshoulderthickness>" + trans.getAftShoulderThickness()
75 + "</aftshoulderthickness>");
76 elements.add("<aftshouldercapped>" + trans.isAftShoulderCapped()
77 + "</aftshouldercapped>");