Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / preset / xml / MaterialTypeDTO.java
diff --git a/core/src/net/sf/openrocket/preset/xml/MaterialTypeDTO.java b/core/src/net/sf/openrocket/preset/xml/MaterialTypeDTO.java
new file mode 100644 (file)
index 0000000..93a83b3
--- /dev/null
@@ -0,0 +1,35 @@
+
+package net.sf.openrocket.preset.xml;
+
+import net.sf.openrocket.material.Material;
+
+/**
+ * A mirror enum of Material.Type, for the purposes of mapping to/from an XML representation.
+ */
+public enum MaterialTypeDTO {
+
+    LINE (Material.Type.LINE),
+    SURFACE (Material.Type.SURFACE),
+    BULK (Material.Type.BULK);
+
+    private Material.Type corollary;
+
+    private MaterialTypeDTO(final Material.Type theCorollary) {
+        corollary = theCorollary;
+    }
+
+    public static MaterialTypeDTO asDTO(Material.Type targetType) {
+        MaterialTypeDTO[] values = values();
+        for (int i = 0; i < values.length; i++) {
+            MaterialTypeDTO value = values[i];
+            if (value.corollary.equals(targetType)) {
+                return value;
+            }
+        }
+        return BULK; //default
+    }
+
+    public Material.Type getORMaterialType() {
+        return corollary;
+    }
+}