Added support for Manufacturer and ComponentPreset.Type.
This commit is contained in:
parent
871ff23523
commit
340bf068ce
@ -2,6 +2,7 @@ package net.sf.openrocket.preset;
|
|||||||
|
|
||||||
import net.sf.openrocket.database.Databases;
|
import net.sf.openrocket.database.Databases;
|
||||||
import net.sf.openrocket.material.Material;
|
import net.sf.openrocket.material.Material;
|
||||||
|
import net.sf.openrocket.motor.Manufacturer;
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
|
import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
|
||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
import net.sf.openrocket.unit.UnitGroup;
|
import net.sf.openrocket.unit.UnitGroup;
|
||||||
@ -34,33 +35,41 @@ public class TypedKey<T> {
|
|||||||
return unitGroup;
|
return unitGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object parseFromString(String value) {
|
public Object parseFromString( String value ) {
|
||||||
if (type.equals(Boolean.class)) {
|
if ( type.equals(Manufacturer.class)) {
|
||||||
|
Manufacturer m = Manufacturer.getManufacturer(value);
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
if ( type.equals(ComponentPreset.Type.class) ) {
|
||||||
|
ComponentPreset.Type t = ComponentPreset.Type.valueOf(value);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
if ( type.equals(Boolean.class) ) {
|
||||||
return Boolean.parseBoolean(value);
|
return Boolean.parseBoolean(value);
|
||||||
}
|
}
|
||||||
if (type.isAssignableFrom(Double.class)) {
|
if ( type.isAssignableFrom(Double.class) ) {
|
||||||
return Double.parseDouble(value);
|
return Double.parseDouble(value);
|
||||||
}
|
}
|
||||||
if (type.equals(String.class)) {
|
if ( type.equals(String.class ) ) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
if (type.equals(Finish.class)) {
|
if ( type.equals(Finish.class) ) {
|
||||||
return Finish.valueOf(value);
|
return Finish.valueOf(value);
|
||||||
}
|
}
|
||||||
if (type.equals(Material.class)) {
|
if ( type.equals(Material.class) ) {
|
||||||
// need to translate the value first!
|
// need to translate the value first!
|
||||||
String translated_value = Application.getTranslator().get(value);
|
String translated_value = Application.getTranslator().get(value);
|
||||||
Material material;
|
Material material;
|
||||||
material = Databases.findMaterial(Material.Type.BULK, translated_value);
|
material = Databases.findMaterial(Material.Type.BULK, translated_value);
|
||||||
if (material != null) {
|
if ( material != null ) {
|
||||||
return material;
|
return material;
|
||||||
}
|
}
|
||||||
material = Databases.findMaterial(Material.Type.LINE, translated_value);
|
material = Databases.findMaterial(Material.Type.LINE, translated_value);
|
||||||
if (material != null) {
|
if ( material != null ) {
|
||||||
return material;
|
return material;
|
||||||
}
|
}
|
||||||
material = Databases.findMaterial(Material.Type.SURFACE, translated_value);
|
material = Databases.findMaterial(Material.Type.SURFACE, translated_value);
|
||||||
if (material != null) {
|
if ( material != null ) {
|
||||||
return material;
|
return material;
|
||||||
}
|
}
|
||||||
throw new IllegalArgumentException("Invalid material " + value + " in component preset.");
|
throw new IllegalArgumentException("Invalid material " + value + " in component preset.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user