package net.sf.openrocket.file.rocksim.export;
-import net.sf.openrocket.file.rocksim.importt.RocksimHandler;
-import net.sf.openrocket.rocketcomponent.BodyTube;
-import net.sf.openrocket.rocketcomponent.Bulkhead;
-import net.sf.openrocket.rocketcomponent.CenteringRing;
-import net.sf.openrocket.rocketcomponent.EngineBlock;
-import net.sf.openrocket.rocketcomponent.FinSet;
-import net.sf.openrocket.rocketcomponent.FreeformFinSet;
-import net.sf.openrocket.rocketcomponent.InnerTube;
-import net.sf.openrocket.rocketcomponent.MassObject;
+import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
import net.sf.openrocket.rocketcomponent.NoseCone;
-import net.sf.openrocket.rocketcomponent.Parachute;
-import net.sf.openrocket.rocketcomponent.RocketComponent;
-import net.sf.openrocket.rocketcomponent.Transition;
-import net.sf.openrocket.rocketcomponent.TubeCoupler;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementRef;
-import javax.xml.bind.annotation.XmlElementRefs;
-import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
-import java.util.ArrayList;
-import java.util.List;
/**
+ * This class models a Rocksim XML Element for a nose cone.
*/
-@XmlRootElement(name = "NoseCone")
+@XmlRootElement(name = RocksimCommonConstants.NOSE_CONE)
@XmlAccessorType(XmlAccessType.FIELD)
public class NoseConeDTO extends AbstractTransitionDTO {
- @XmlElement(name = "BaseDia")
+ @XmlElement(name = RocksimCommonConstants.BASE_DIA)
private double baseDia = 0d;
- @XmlElement(name = "ShoulderLen")
+ @XmlElement(name = RocksimCommonConstants.SHOULDER_LEN)
private double shoulderLen = 0d;
- @XmlElement(name = "ShoulderOD")
+ @XmlElement(name = RocksimCommonConstants.SHOULDER_OD)
private double shoulderOD = 0d;
- @XmlElementWrapper(name = "AttachedParts")
- @XmlElementRefs({
- @XmlElementRef(name = "BodyTube", type = BodyTubeDTO.class),
- @XmlElementRef(name = "BodyTube", type = InnerBodyTubeDTO.class),
- @XmlElementRef(name = "FinSet", type = FinSetDTO.class),
- @XmlElementRef(name = "CustomFinSet", type = CustomFinSetDTO.class),
- @XmlElementRef(name = "Ring", type = CenteringRingDTO.class),
- @XmlElementRef(name = "Parachute", type = ParachuteDTO.class),
- @XmlElementRef(name = "MassObject", type = MassObjectDTO.class)})
- List<BasePartDTO> attachedParts = new ArrayList<BasePartDTO>();
-
+ /**
+ * Default constructor.
+ */
public NoseConeDTO() {
}
+ /**
+ * Full copy constructor. Fully populates this instance with values taken from the OR NoseCone instance.
+ *
+ * @param nc the OR nose cone
+ */
public NoseConeDTO(NoseCone nc) {
super(nc);
- setBaseDia(nc.getAftRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
- setShoulderLen(nc.getAftShoulderLength() * RocksimHandler.ROCKSIM_TO_OPENROCKET_LENGTH);
- setShoulderOD(nc.getAftShoulderRadius() * RocksimHandler.ROCKSIM_TO_OPENROCKET_RADIUS);
-
- List<RocketComponent> children = nc.getChildren();
- for (int i = 0; i < children.size(); i++) {
- RocketComponent rocketComponents = children.get(i);
- if (rocketComponents instanceof InnerTube) {
- attachedParts.add(new InnerBodyTubeDTO((InnerTube) rocketComponents));
- } else if (rocketComponents instanceof BodyTube) {
- attachedParts.add(new BodyTubeDTO((BodyTube) rocketComponents));
- } else if (rocketComponents instanceof Transition) {
- attachedParts.add(new TransitionDTO((Transition) rocketComponents));
- } else if (rocketComponents instanceof EngineBlock) {
- attachedParts.add(new EngineBlockDTO((EngineBlock) rocketComponents));
- } else if (rocketComponents instanceof TubeCoupler) {
- attachedParts.add(new TubeCouplerDTO((TubeCoupler) rocketComponents));
- } else if (rocketComponents instanceof CenteringRing) {
- attachedParts.add(new CenteringRingDTO((CenteringRing) rocketComponents));
- } else if (rocketComponents instanceof Bulkhead) {
- attachedParts.add(new BulkheadDTO((Bulkhead) rocketComponents));
- } else if (rocketComponents instanceof Parachute) {
- attachedParts.add(new ParachuteDTO((Parachute) rocketComponents));
- } else if (rocketComponents instanceof MassObject) {
- attachedParts.add(new MassObjectDTO((MassObject) rocketComponents));
- } else if (rocketComponents instanceof FreeformFinSet) {
- attachedParts.add(new CustomFinSetDTO((FreeformFinSet) rocketComponents));
- } else if (rocketComponents instanceof FinSet) {
- attachedParts.add(new FinSetDTO((FinSet) rocketComponents));
- }
- }
+ setBaseDia(nc.getAftRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
+ setShoulderLen(nc.getAftShoulderLength() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_LENGTH);
+ setShoulderOD(nc.getAftShoulderRadius() * RocksimCommonConstants.ROCKSIM_TO_OPENROCKET_RADIUS);
}
public double getBaseDia() {