From: kruland2607 Date: Wed, 6 Jun 2012 18:02:01 +0000 (+0000) Subject: Change MaterialDTO.asMaterial() to convert the current object into a Material object... X-Git-Tag: upstream/12.09^2~192 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=62408659e7ab5cf73bce0038d8fb918b3a93afac;p=debian%2Fopenrocket Change MaterialDTO.asMaterial() to convert the current object into a Material object. It no longer attempts to look it up in the database. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@766 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java index 9f49d948..52029304 100644 --- a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java @@ -1,6 +1,7 @@ package net.sf.openrocket.preset.xml; +import net.sf.openrocket.database.Databases; import net.sf.openrocket.material.Material; import net.sf.openrocket.motor.Manufacturer; import net.sf.openrocket.preset.ComponentPreset; @@ -189,17 +190,22 @@ public abstract class BaseComponentDTO { } } - // Don't have one, build one. + // Don't have one, first check OR's database + Material m = Databases.findMaterial(dto.getORMaterialType(), dto.material); + if ( m != null ) { + return m; + } - if ( "BULK".equals( dto.type ) ) { + switch( dto.getORMaterialType() ) { + case BULK: return new Material.Bulk(dto.material, 0.0, true); - } else if ( "SURFACE".equals( dto.type ) ) { + case SURFACE: return new Material.Surface(dto.material, 0.0, true); - } else if ( "LINE".equals( dto.type ) ) { + case LINE: return new Material.Line(dto.material, 0.0, true); - } else { - return null; - } + } + + return null; } @@ -215,6 +221,17 @@ public abstract class BaseComponentDTO { type = theMaterial.getType().name(); material = theMaterial.getName(); } + + public Material.Type getORMaterialType() { + if ( "BULK".equals(type) ) { + return Material.Type.BULK; + } else if ( "SURFACE".equals(type) ) { + return Material.Type.SURFACE; + } else if ( "LINE".equals(type) ) { + return Material.Type.LINE; + } + throw new IllegalArgumentException( "Inavlid material type " + type +" specified for Component" ); + } } static class AnnotatedLengthDTO { diff --git a/core/src/net/sf/openrocket/preset/xml/MaterialDTO.java b/core/src/net/sf/openrocket/preset/xml/MaterialDTO.java index 5d38be8f..6bfbe4c6 100644 --- a/core/src/net/sf/openrocket/preset/xml/MaterialDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/MaterialDTO.java @@ -80,7 +80,7 @@ public class MaterialDTO { } Material asMaterial() { - return Databases.findMaterial(type.getORMaterialType(), name, density, false); + return Material.newMaterial(type.getORMaterialType(), name, density, true); }