]> git.gag.com Git - debian/openrocket/commitdiff
Change implementation of compatible types so they can be declared. Because of the...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 19 Apr 2012 16:03:48 +0000 (16:03 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 19 Apr 2012 16:03:48 +0000 (16:03 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@571 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/preset/ComponentPreset.java

index 9ee7c0096fc1ce134359f387026cb1e6afed9fa5..d10a88b745780c33d8d06f6f692981ae317ac67f 100644 (file)
@@ -93,35 +93,29 @@ public class ComponentPreset implements Comparable<ComponentPreset> {
                                ComponentPreset.OUTER_DIAMETER,
                                ComponentPreset.LENGTH} );
 
-
-               Type[] compatibleTypes;
                TypedKey<?>[] displayedColumns;
 
                Type( TypedKey<?>[] displayedColumns) {
-                       compatibleTypes = new Type[1];
-                       compatibleTypes[0] = this;
                        this.displayedColumns = displayedColumns;
                }
 
-               Type( Type[] t, TypedKey<?>[] displayedColumns ) {
-
-                       compatibleTypes = new Type[t.length+1];
-                       compatibleTypes[0] = this;
-                       for( int i=0; i<t.length; i++ ) {
-                               compatibleTypes[i+1] = t[i];
-                       }
-
-                       this.displayedColumns = displayedColumns;
-               }
-
-               public Type[] getCompatibleTypes() {
-                       return compatibleTypes;
+               public List<Type> getCompatibleTypes() {
+                       return compatibleTypeMap.get(Type.this);
                }
 
                public TypedKey<?>[] getDisplayedColumns() {
                        return displayedColumns;
                }
-
+               
+               private static Map<Type,List<Type>> compatibleTypeMap = new HashMap<Type,List<Type>>();
+
+               static {
+                       compatibleTypeMap.put( BODY_TUBE, Arrays.asList( BODY_TUBE, TUBE_COUPLER) );
+                       compatibleTypeMap.put( TUBE_COUPLER, Arrays.asList( BODY_TUBE,TUBE_COUPLER) );
+                       compatibleTypeMap.put( CENTERING_RING, Arrays.asList( CENTERING_RING, ENGINE_BLOCK ) );
+                       compatibleTypeMap.put( NOSE_CONE, Arrays.asList( NOSE_CONE, TRANSITION));
+               }
+               
        }
 
        public final static TypedKey<Manufacturer> MANUFACTURER = new TypedKey<Manufacturer>("Manufacturer", Manufacturer.class);