1 package net.sf.openrocket.preset.loader;
3 import java.util.Locale;
5 import net.sf.openrocket.preset.ComponentPreset;
6 import net.sf.openrocket.preset.TypedPropertyMap;
7 import net.sf.openrocket.rocketcomponent.Transition;
8 import net.sf.openrocket.rocketcomponent.Transition.Shape;
9 import net.sf.openrocket.util.BugException;
11 public class ShapeColumnParser extends BaseColumnParser {
13 public ShapeColumnParser() {
18 protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
19 Transition.Shape shape = null;
20 String lc = columnData.toLowerCase(Locale.US);
21 if ( "ogive".equals(lc) ) {
24 if ( "conical".equals(lc) ) {
25 shape = Shape.CONICAL;
27 if ( "cone".equals(lc) ) {
28 shape = Shape.CONICAL;
30 if ( "elliptical".equals(lc) ) {
31 shape = Shape.ELLIPSOID;
33 if ( "parabolic".equals(lc) ) {
34 shape = Shape.PARABOLIC;
36 if ( "sears-haack".equals(lc) ) {
39 if ( "power-series".equals(lc) ) {
42 // guessing at what "ps" means. I think it might be power series.
43 if ( "ps".equals(lc) ) {
46 if ( "1".equals(lc) ) {
49 if( "0". equals(lc) ) {
50 shape = Shape.CONICAL;
52 if( "". equals(lc) ) {
53 shape = Shape.CONICAL;
55 if ( "3".equals(lc) ) {
56 shape = Shape.ELLIPSOID;
58 if ( shape == null ) {
59 throw new BugException("Invalid shape parameter: " + columnData);
61 props.put(ComponentPreset.SHAPE, shape);