2 * AttachedPartsHandler.java
4 package net.sf.openrocket.file.rocksim.importt;
6 import net.sf.openrocket.aerodynamics.WarningSet;
7 import net.sf.openrocket.file.rocksim.RocksimCommonConstants;
8 import net.sf.openrocket.file.simplesax.AbstractElementHandler;
9 import net.sf.openrocket.file.simplesax.ElementHandler;
10 import net.sf.openrocket.rocketcomponent.RocketComponent;
12 import java.util.HashMap;
15 * A SAX handler for the Rocksim AttachedParts XML type.
17 class AttachedPartsHandler extends AbstractElementHandler {
18 /** The parent component. */
19 private final RocketComponent component;
26 * @throws IllegalArgumentException thrown if <code>c</code> is null
28 public AttachedPartsHandler(RocketComponent c) throws IllegalArgumentException {
30 throw new IllegalArgumentException("The parent component of any attached part may not be null.");
36 public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
37 if (RocksimCommonConstants.FIN_SET.equals(element)) {
38 return new FinSetHandler(component);
40 if (RocksimCommonConstants.CUSTOM_FIN_SET.equals(element)) {
41 return new FinSetHandler(component);
43 if (RocksimCommonConstants.LAUNCH_LUG.equals(element)) {
44 return new LaunchLugHandler(component, warnings);
46 if (RocksimCommonConstants.PARACHUTE.equals(element)) {
47 return new ParachuteHandler(component, warnings);
49 if (RocksimCommonConstants.STREAMER.equals(element)) {
50 return new StreamerHandler(component, warnings);
52 if (RocksimCommonConstants.MASS_OBJECT.equals(element)) {
53 return new MassObjectHandler(component, warnings);
55 if (RocksimCommonConstants.RING.equals(element)) {
56 return new RingHandler(component, warnings);
58 if (RocksimCommonConstants.BODY_TUBE.equals(element)) {
59 return new InnerBodyTubeHandler(component, warnings);
61 if (RocksimCommonConstants.TRANSITION.equals(element)) {
62 return new TransitionHandler(component, warnings);
64 if (RocksimCommonConstants.TUBE_FIN_SET.equals(element)) {
65 warnings.add("Tube fins are not currently supported. Ignoring.");
67 if (RocksimCommonConstants.RING_TAIL.equals(element)) {
68 warnings.add("Ring tails are not currently supported. Ignoring.");
70 if (RocksimCommonConstants.EXTERNAL_POD.equals(element)) {
71 warnings.add("Pods are not currently supported. Ignoring.");