2 package net.sf.openrocket.preset.xml;
4 import net.sf.openrocket.preset.ComponentPreset;
5 import net.sf.openrocket.preset.ComponentPresetFactory;
6 import net.sf.openrocket.preset.InvalidComponentPresetException;
7 import net.sf.openrocket.preset.TypedPropertyMap;
9 import javax.xml.bind.annotation.XmlAccessType;
10 import javax.xml.bind.annotation.XmlAccessorType;
11 import javax.xml.bind.annotation.XmlElement;
12 import javax.xml.bind.annotation.XmlRootElement;
13 import java.util.List;
16 * Transition preset XML handler.
18 @XmlRootElement(name = "Transition")
19 @XmlAccessorType(XmlAccessType.FIELD)
20 public class TransitionDTO extends BaseComponentDTO {
22 @XmlElement(name = "Shape")
23 private ShapeDTO shape;
25 @XmlElement(name = "ForeOutsideDiameter")
26 private double foreOutsideDiameter;
27 @XmlElement(name = "ForeShoulderDiameter")
28 private double foreShoulderDiameter;
29 @XmlElement(name = "ForeShoulderLength")
30 private double foreShoulderLength;
32 @XmlElement(name = "AftOutsideDiameter")
33 private double aftOutsideDiameter;
34 @XmlElement(name = "AftShoulderDiameter")
35 private double aftShoulderDiameter;
36 @XmlElement(name = "AftShoulderLength")
37 private double aftShoulderLength;
39 @XmlElement(name = "Length")
40 private double length;
44 * Default constructor.
46 public TransitionDTO() {
50 * Most-useful constructor that maps a Transition preset to a TransitionDTO.
52 * @param thePreset the preset
54 * @throws net.sf.openrocket.util.BugException thrown if the expected transition keys are not in the preset
56 public TransitionDTO(final ComponentPreset thePreset) {
58 setShape(ShapeDTO.asDTO(thePreset.get(ComponentPreset.SHAPE)));
59 setForeOutsideDiameter(thePreset.get(ComponentPreset.FORE_OUTER_DIAMETER));
60 setForeShoulderDiameter(thePreset.get(ComponentPreset.FORE_SHOULDER_DIAMETER));
61 setForeShoulderLength(thePreset.get(ComponentPreset.FORE_SHOULDER_LENGTH));
62 setAftOutsideDiameter(thePreset.get(ComponentPreset.AFT_OUTER_DIAMETER));
63 setAftShoulderDiameter(thePreset.get(ComponentPreset.AFT_SHOULDER_DIAMETER));
64 setAftShoulderLength(thePreset.get(ComponentPreset.AFT_SHOULDER_LENGTH));
65 setLength(thePreset.get(ComponentPreset.LENGTH));
68 public ShapeDTO getShape() {
72 public void setShape(final ShapeDTO theShape) {
76 public double getForeOutsideDiameter() {
77 return foreOutsideDiameter;
80 public void setForeOutsideDiameter(final double theForeOutsideDiameter) {
81 foreOutsideDiameter = theForeOutsideDiameter;
84 public double getForeShoulderDiameter() {
85 return foreShoulderDiameter;
88 public void setForeShoulderDiameter(final double theForeShoulderDiameter) {
89 foreShoulderDiameter = theForeShoulderDiameter;
92 public double getForeShoulderLength() {
93 return foreShoulderLength;
96 public void setForeShoulderLength(final double theForeShoulderLength) {
97 foreShoulderLength = theForeShoulderLength;
100 public double getAftOutsideDiameter() {
101 return aftOutsideDiameter;
104 public void setAftOutsideDiameter(final double theAftOutsideDiameter) {
105 aftOutsideDiameter = theAftOutsideDiameter;
108 public double getAftShoulderDiameter() {
109 return aftShoulderDiameter;
112 public void setAftShoulderDiameter(final double theAftShoulderDiameter) {
113 aftShoulderDiameter = theAftShoulderDiameter;
116 public double getAftShoulderLength() {
117 return aftShoulderLength;
120 public void setAftShoulderLength(final double theAftShoulderLength) {
121 aftShoulderLength = theAftShoulderLength;
124 public double getLength() {
128 public void setLength(final double theLength) {
132 public ComponentPreset asComponentPreset(List<MaterialDTO> materials) throws InvalidComponentPresetException {
133 TypedPropertyMap props = new TypedPropertyMap();
134 addProps(props, materials);
135 props.put(ComponentPreset.SHAPE, shape.getORShape());
136 props.put(ComponentPreset.FORE_OUTER_DIAMETER, this.getForeOutsideDiameter());
137 props.put(ComponentPreset.FORE_SHOULDER_DIAMETER, this.getForeShoulderDiameter());
138 props.put(ComponentPreset.FORE_SHOULDER_LENGTH, this.getForeShoulderLength());
139 props.put(ComponentPreset.AFT_OUTER_DIAMETER, this.getAftOutsideDiameter());
140 props.put(ComponentPreset.AFT_SHOULDER_DIAMETER, this.getAftShoulderDiameter());
141 props.put(ComponentPreset.AFT_SHOULDER_LENGTH, this.getAftShoulderLength());
142 props.put(ComponentPreset.LENGTH, this.getLength());
143 props.put(ComponentPreset.TYPE, ComponentPreset.Type.TRANSITION);
145 return ComponentPresetFactory.create(props);