Index: trunk/src/scriptbuilder/structures/units/Unit.java
===================================================================
--- trunk/src/scriptbuilder/structures/units/Unit.java	(revision 1)
+++ trunk/src/scriptbuilder/structures/units/Unit.java	(revision 38)
@@ -5,4 +5,7 @@
  */
 package scriptbuilder.structures.units;
+
+import scriptbuilder.structures.ELEMENT;
+import scriptbuilder.structures.I_XML_Writable;
 
 /**
@@ -13,46 +16,210 @@
  * @author Bryan McGuffin
  */
-public class Unit
+public class Unit implements I_XML_Writable
 {
 
-    public String UnitNum = "";
-
-    public String ID = "";
-
-    public String Status = "";
-
-    public String Master_Inc_Num = "";
-
-    public String Primary = "";
-
-    public String OOS = "";
-
-    public String Type = "";
-
-    public String Curr_Loc = "";
-
-    public String Destination = "";
-
-    public String Misc_Info = "";
-
-    public String Stack = "";
-
-    public String Area = "";
-
-    public String Officer = "";
-
-    public String Badge_Num = "";
-
-    public String Timer = "";
-
-    public String Office = "";
-
-    public String P = "";
-
-    public String Agy = "";
-
-    public String Alias = "";
-
-    public String Unit_Status = "";
-
+    public String UnitNum;
+
+    public String ID;
+
+    public String Status;
+
+    public String Master_Inc_Num;
+
+    public String Primary;
+
+    public String OOS;
+
+    public String Type;
+
+    public String Curr_Loc;
+
+    public String Destination;
+
+    public String Misc_Info;
+
+    public String Stack;
+
+    public String Area;
+
+    public String Officer;
+
+    public String Badge_Num;
+
+    public String Timer;
+
+    public String Office;
+
+    public String P;
+
+    public String Agy;
+
+    public String Alias;
+
+    public String Unit_Status;
+
+    public Unit()
+    {
+        UnitNum = "";
+
+        ID = "";
+
+        Status = "";
+
+        Master_Inc_Num = "";
+
+        Primary = "";
+
+        OOS = "";
+
+        Type = "";
+
+        Curr_Loc = "";
+
+        Destination = "";
+
+        Misc_Info = "";
+
+        Stack = "";
+
+        Area = "";
+
+        Officer = "";
+
+        Badge_Num = "";
+
+        Timer = "";
+
+        Office = "";
+
+        P = "";
+
+        Agy = "";
+
+        Alias = "";
+
+        Unit_Status = "";
+    }
+
+    @Override
+    public String toXML()
+    {
+        String output = openTag(ELEMENT.NEW_UNIT.tag + " UnitNum=\"" + UnitNum + "\"");
+
+        if (!ID.equals(""))
+        {
+            output += openTag(ELEMENT.ID.tag) + ID + closeTag(ELEMENT.ID.tag);
+        }
+
+        if (!Status.equals(""))
+        {
+            output += openTag(ELEMENT.STATUS.tag) + Status + closeTag(ELEMENT.STATUS.tag);
+        }
+
+        if (!Master_Inc_Num.equals(""))
+        {
+            output += openTag(ELEMENT.MASTER_INC_NUM.tag) + Master_Inc_Num + closeTag(ELEMENT.MASTER_INC_NUM.tag);
+        }
+
+        if (!Primary.equals(""))
+        {
+            output += openTag(ELEMENT.PRIMARY.tag) + Primary + closeTag(ELEMENT.PRIMARY.tag);
+        }
+
+        if (!OOS.equals(""))
+        {
+            output += openTag(ELEMENT.OOS.tag) + OOS + closeTag(ELEMENT.OOS.tag);
+        }
+
+        if (!Type.equals(""))
+        {
+            output += openTag(ELEMENT.TYPE.tag) + Type + closeTag(ELEMENT.TYPE.tag);
+        }
+
+        if (!Curr_Loc.equals(""))
+        {
+            output += openTag(ELEMENT.CURR_LOC.tag) + Curr_Loc + closeTag(ELEMENT.CURR_LOC.tag);
+        }
+
+        if (!Destination.equals(""))
+        {
+            output += openTag(ELEMENT.DESTINATION.tag) + Destination + closeTag(ELEMENT.DESTINATION.tag);
+        }
+
+        if (!Misc_Info.equals(""))
+        {
+            output += openTag(ELEMENT.MISC_INFO.tag) + Misc_Info + closeTag(ELEMENT.MISC_INFO.tag);
+        }
+
+        if (!Stack.equals(""))
+        {
+            output += openTag(ELEMENT.STACK.tag) + Stack + closeTag(ELEMENT.STACK.tag);
+        }
+
+        if (!Area.equals(""))
+        {
+            output += openTag(ELEMENT.AREA.tag) + Area + closeTag(ELEMENT.AREA.tag);
+        }
+
+        if (!Badge_Num.equals(""))
+        {
+            output += openTag(ELEMENT.BADGE_NUM.tag) + Badge_Num + closeTag(ELEMENT.BADGE_NUM.tag);
+        }
+
+        if (!Officer.equals(""))
+        {
+            output += openTag(ELEMENT.OFFICER.tag) + Officer + closeTag(ELEMENT.OFFICER.tag);
+        }
+
+        if (!Office.equals(""))
+        {
+            output += openTag(ELEMENT.OFFICE.tag) + Office + closeTag(ELEMENT.OFFICE.tag);
+        }
+
+        if (!Timer.equals(""))
+        {
+            output += openTag(ELEMENT.TIMER.tag) + Timer + closeTag(ELEMENT.TIMER.tag);
+        }
+
+        if (!P.equals(""))
+        {
+            output += openTag(ELEMENT.P.tag) + P + closeTag(ELEMENT.P.tag);
+        }
+
+        if (!Agy.equals(""))
+        {
+            output += openTag(ELEMENT.AGY.tag) + Agy + closeTag(ELEMENT.AGY.tag);
+        }
+
+        if (!Alias.equals(""))
+        {
+            output += openTag(ELEMENT.ALIAS.tag) + Alias + closeTag(ELEMENT.ALIAS.tag);
+        }
+
+        if (!Unit_Status.equals(""))
+        {
+            output += openTag(ELEMENT.UNIT_STATUS.tag) + Unit_Status + closeTag(ELEMENT.UNIT_STATUS.tag);
+        }
+
+        output += closeTag(ELEMENT.NEW_UNIT.tag);
+        return output;
+    }
+
+    @Override
+    public String openTag(String s)
+    {
+        return "<" + s + ">";
+    }
+
+    @Override
+    public String closeTag(String s)
+    {
+        return "</" + s + ">\n";
+    }
+
+    @Override
+    public String emptyTag(String s)
+    {
+        return "<" + s + "/>\n";
+    }
 }
