//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2008.12.23 at 11:43:13 AM EST 
//


package gov.nih.nci.cbiit.cmts.core;

import java.math.BigInteger;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for linkType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="tagType">
 *   &lt;complexContent>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;attribute name="componentType" type="{http://cmts.cbiit.nci.nih.gov/core}componentKind" />
 *       &lt;attribute name="kind" type="{http://cmts.cbiit.nci.nih.gov/core}tagKind" />
 *       &lt;attribute name="key" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       &lt;attribute name="value" type="{http://www.w3.org/2001/XMLSchema}string" />
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "tagType")
public class TagType implements Comparable {

	@XmlAttribute
    protected ComponentType componentType;
    @XmlAttribute
    protected KindType kind;
    @XmlAttribute
    protected String key;
    @XmlAttribute
    protected String value;

    /**
     * Gets the value of the componentType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public ComponentType getComponentType() {
        return componentType;
    }

    /**
     * Sets the value of the componentType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setComponentType(ComponentType value) {
        this.componentType = value;
    }

 
 
    /**
     * Gets the value of the kind property.
     * 
     * @return
     *     possible object is
     *     {@link TagKind }
     *     
     */
    public KindType getKind() {
        return kind;
    }

    /**
     * Sets the value of the kind property.
     * 
     * @param value
     *     allowed object is
     *     {@link TagKind }
     *     
     */
    public void setKind(KindType value) {
        this.kind = value;
    }

    /**
     * Gets the value of the key property.
     * 
     * @return
     *     possible object is
     *     {@link String}
     *     
     */
	public String getKey() {
		return key;
	}
    /**
     * Sets the value of the key property.
     * 
     * @param key
     *     allowed object is
     *     {@link string }
     *     
     */
	public void setKey(String key) {
		this.key = key;
	}

    /**
     * Gets the value of the value property.
     * 
     * @return
     *     possible object is
     *     {@link String}
     *     
     */
	public String getValue() {
		return value;
	}
    /**
     * Sets the value of the value property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
	public void setValue(String value) {
		this.value = value;
	}

	@Override
	public int compareTo(Object arg0) {
		// TODO Auto-generated method stub
		TagType toCompared=(TagType)arg0;

		int componentTypeCompare=this.getComponentType().compareTo(toCompared.getComponentType());
		if (componentTypeCompare!=0)
			return componentTypeCompare;
		int kindCompare=this.getKind().compareTo(toCompared.getKind());
		if (kindCompare!=0)
			return kindCompare;
		int keyCompare=this.getKey().compareTo(toCompared.getKey());
		if (keyCompare!=0)
			return keyCompare;	
		int valueCompare=this.getValue().compareTo(toCompared.getValue());
		if (valueCompare!=0)
			return valueCompare;
		return 0;
	}


}

@@ -386,38 +386,8 @@
 e;%0A%0A
-import java.math.BigInteger;%0A%0A
 impo
@@ -531,53 +531,8 @@
 te;%0A
-import javax.xml.bind.annotation.XmlElement;%0A
 impo
@@ -1456,16 +1456,25 @@
 mparable
+%3CTagType%3E
  %7B%0A%0A%09@Xm
@@ -3456,16 +3456,276 @@
 verride%0A
+%09/**%0A%09 * The comparing precedence from lower to higher%0A%09 * 0 -- componentType; enumValues: source, taret, function%0A%09 * 1 -- key; allowing value: entry's xpath%0A%09 * 2 -- componentKind; enumValues: choice, clone%0A%09 * 3 -- value; the ordered ASCII characters %0A%09 */%0A
 %09public 
@@ -3742,14 +3742,15 @@
 eTo(
-Object
+TagType
  arg
@@ -3980,24 +3980,251 @@
 ypeCompare;%0A
+//%09%09int kindCompare=this.getKind().compareTo(toCompared.getKind());%0A//%09%09if (kindCompare!=0)%0A//%09%09%09return kindCompare;%0A%09%09int keyCompare=this.getKey().compareTo(toCompared.getKey());%0A%09%09if (keyCompare!=0)%0A%09%09%09return keyCompare;%09%0A%09%09%0A
 %09%09int kindCo
@@ -4326,114 +4326,10 @@
 re;%0A
+
 %09%09
-int keyCompare=this.getKey().compareTo(toCompared.getKey());%0A%09%09if (keyCompare!=0)%0A%09%09%09return keyCompare;%09
 %0A%09%09i

change sorting precedence of attributes