2 * AttachedPartsHandler.java
4 package net.sf.openrocket.file.rocksim;
6 import net.sf.openrocket.aerodynamics.WarningSet;
7 import net.sf.openrocket.file.simplesax.ElementHandler;
8 import net.sf.openrocket.rocketcomponent.RocketComponent;
10 import java.util.HashMap;
13 * A SAX handler for the Rocksim AttachedParts XML type.
15 class AttachedPartsHandler extends ElementHandler {
16 /** The parent component. */
17 private final RocketComponent component;
24 * @throws IllegalArgumentException thrown if <code>c</code> is null
26 public AttachedPartsHandler(RocketComponent c) throws IllegalArgumentException {
28 throw new IllegalArgumentException("The parent component of any attached part may not be null.");
34 public ElementHandler openElement(String element, HashMap<String, String> attributes, WarningSet warnings) {
35 if ("FinSet".equals(element)) {
36 return new FinSetHandler(component);
38 if ("CustomFinSet".equals(element)) {
39 return new FinSetHandler(component);
41 if ("LaunchLug".equals(element)) {
42 return new LaunchLugHandler(component);
44 if ("Parachute".equals(element)) {
45 return new ParachuteHandler(component);
47 if ("Streamer".equals(element)) {
48 return new StreamerHandler(component);
50 if ("MassObject".equals(element)) {
51 return new MassObjectHandler(component);
53 if ("Ring".equals(element)) {
54 return new RingHandler(component);
56 if ("BodyTube".equals(element)) {
57 return new InnerBodyTubeHandler(component);
59 if ("Transition".equals(element)) {
60 return new TransitionHandler(component);
62 if ("TubeFinSet".equals(element)) {
63 warnings.add("Tube fins are not currently supported. Ignoring.");
65 if ("RingTail".equals(element)) {
66 warnings.add("Ring tails are not currently supported. Ignoring.");
68 if ("ExternalPod".equals(element)) {
69 warnings.add("Pods are not currently supported. Ignoring.");