/*
 * Delivered to the U.S. Government in Accordance with Contract FA8650-10-C-7080.
 *
 * EXPORT CONTROLLED
 * ECCN#   EAR99  
 * Warning:  This document contains technical data which is controlled under the
 * Bureau of Industry & Security’s Export Administration Regulations and may not be
 * exported or re-exported without authorization by the Bureau of Industry & Security.
 * Diversion contrary to US law is prohibited.
 *
 * (c) 2011 United Technologies Corp.
 * Developed with the sponsorship of the Defense Advanced Research Projects Agency (DARPA).
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this data,
 * including any software or models in source or binary form, as well as any drawings, 
 * specifications, and documentation (collectively "the Data"), to deal in the Data without 
 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Data, and to permit persons to whom the Data
 * is furnished to do so, subject to the following conditions:
 *  
 * The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Data.
 *  
 * THE DATA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS, SPONSORS, DEVELOPERS, CONTRIBUTORS, OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DATA OR THE
 * USE OR OTHER DEALINGS IN THE DATA.
 */
package meta.rmi;

import org.jdom.Element;

public class Argument {
  private String name;
  private String type;
  private String value;
  private String unit;
  public Argument(String name, String type, String value, String unit) {
	  this.name = name;
	  this.type = type;
	  this.value = value;
	  this.unit = unit;
  }
  public Argument(String name, String type, String value) {
	  this(name,type,value,"");
  }
  /**
   * @return the name
   */
  public String getName() {
  	return name;
  }
  /**
   * @return the type
   */
  public String getType() {
  	return type;
  }
  /**
   * @return the value
   */
  public String getValue() {
  	return value;
  }
  /**
   * convenience method
   * @return the value as an int
   */
  public int getIntValue() {
  	return Integer.parseInt(value);
  }
  /**
   * @return the unit
   */
  public String getUnit() {
  	return unit;
  }

  /**
   * Report the argument as an element
   * @return A JDOM Element for the argument
   */
  public Element toElement() {
  	Element element = new Element("argument");
  	
  	if (! "".equals(name))  element.setAttribute("name",  name);
  	if (! "".equals(type))  element.setAttribute("type",  type);
  	if (! "".equals(value)) element.setAttribute("value", value);
  	if (! "".equals(unit))  element.setAttribute("unit",  unit);
 	
  	return element;
  }

}
