/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package scriptbuilder.structures.units;

import scriptbuilder.structures.ELEMENT;
import scriptbuilder.structures.I_XML_Writable;

/**
 * Placeholder until I add some functionality. Represents an officer in a
 * vehicle on the map. Has a name, ID, position, and status, as well as several
 * other identifying factors.
 *
 * @author Bryan McGuffin
 */
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 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";
    }
}
