if ( preset.has(ComponentPreset.FILLED) ) {
setFilled( preset.get(ComponentPreset.FILLED));
}
+ if (preset.has(ComponentPreset.IMAGE) ) {
+ setImageData(preset.get(ComponentPreset.IMAGE));
+ }
}
public String getManufacturer() {
if ( filled != null ) {
props.put(ComponentPreset.FILLED, getFilled());
}
+ if (image != null) {
+ props.put(ComponentPreset.IMAGE, image);
+ }
}
protected Material find(List<MaterialDTO> materialList, AnnotatedMaterialDTO dto) {
}
}
- // 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;
+ }
+
+ return Material.newUserMaterial(dto.getORMaterialType(), dto.material, 0.0);
- if ( "BULK".equals( dto.type ) ) {
- return new Material.Bulk(dto.material, 0.0, true);
- } else if ( "SURFACE".equals( dto.type ) ) {
- return new Material.Surface(dto.material, 0.0, true);
- } else if ( "LINE".equals( dto.type ) ) {
- return new Material.Line(dto.material, 0.0, true);
- } else {
- return null;
- }
-
}
static class AnnotatedMaterialDTO {
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 {
}
static class Base64Adapter extends XmlAdapter<String, byte[]> {
+ @Override
public byte[] unmarshal(String s) {
if (s == null) {
return null;
return DatatypeConverter.parseBase64Binary(s);
}
+ @Override
public String marshal(byte[] bytes) {
if (bytes == null) {
return null;