package net.sf.openrocket.file.openrocket.importt; import java.util.HashMap; import net.sf.openrocket.aerodynamics.WarningSet; import net.sf.openrocket.rocketcomponent.FinSet; import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.FinSet.TabRelativePosition; import net.sf.openrocket.util.Reflection; class FinTabPositionSetter extends DoubleSetter { public FinTabPositionSetter() { super(Reflection.findMethod(FinSet.class, "setTabShift", double.class)); } @Override public void set(RocketComponent c, String s, HashMap<String, String> attributes, WarningSet warnings) { if (!(c instanceof FinSet)) { throw new IllegalStateException("FinTabPositionSetter called for component " + c); } String relative = attributes.get("relativeto"); FinSet.TabRelativePosition position = (TabRelativePosition) DocumentConfig.findEnum(relative, FinSet.TabRelativePosition.class); if (position != null) { ((FinSet) c).setTabRelativePosition(position); } else { if (relative == null) { warnings.add("Required attribute 'relativeto' not found for fin tab position."); } else { warnings.add("Illegal attribute value '" + relative + "' encountered."); } } super.set(c, s, attributes, warnings); } }