Added filled property. Made Filled and Mass optional by using objects instead of primitives. Changed the serialization process so only properties set in the ComponentPreset are serialized. Change the deserialization process so if properties are not specified in the xml file, they are not assigned.

This commit is contained in:
Kevin Ruland 2012-04-26 18:18:00 +00:00
parent 727e388482
commit 85fe891980

View File

@ -30,7 +30,9 @@ public abstract class BaseComponentDTO {
@XmlElement(name = "Material")
private AnnotatedMaterialDTO material;
@XmlElement(name = "Mass")
private double mass;
private Double mass;
@XmlElement(name="Filled")
private Boolean filled;
/**
* Default constructor.
@ -48,11 +50,18 @@ public abstract class BaseComponentDTO {
protected BaseComponentDTO(final ComponentPreset preset) {
setManufacturer(preset.getManufacturer().getSimpleName());
setPartNo(preset.getPartNo());
if ( preset.has(ComponentPreset.DESCRIPTION )) {
setDescription(preset.get(ComponentPreset.DESCRIPTION));
}
if ( preset.has(ComponentPreset.MATERIAL)) {
setMaterial(new AnnotatedMaterialDTO(preset.get(ComponentPreset.MATERIAL)));
}
if (preset.has(ComponentPreset.MASS)) {
setMass(preset.get(ComponentPreset.MASS));
}
if ( preset.has(ComponentPreset.FILLED) ) {
setFilled( preset.get(ComponentPreset.FILLED));
}
}
public String getManufacturer() {
@ -95,15 +104,33 @@ public abstract class BaseComponentDTO {
mass = theMass;
}
public Boolean getFilled() {
return filled;
}
public void setFilled(Boolean filled) {
this.filled = filled;
}
public abstract ComponentPreset asComponentPreset(List<MaterialDTO> materials) throws InvalidComponentPresetException;
void addProps(TypedPropertyMap props, List<MaterialDTO> materialList) {
props.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer(manufacturer));
props.put(ComponentPreset.PARTNO, partNo);
if ( description != null ) {
props.put(ComponentPreset.DESCRIPTION, description);
}
Material m = find(materialList, material);
if ( m != null ) {
props.put(ComponentPreset.MATERIAL, find(materialList, material));
}
if ( mass != null ) {
props.put(ComponentPreset.MASS, mass);
}
if ( filled != null ) {
props.put(ComponentPreset.FILLED, filled);
}
}
private Material find(List<MaterialDTO> materialList, AnnotatedMaterialDTO dto) {
for (int i = 0; i < materialList.size(); i++) {