001//
002// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-2 
003// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
004// Any modifications to this file will be lost upon recompilation of the source schema. 
005// Generated on: 2015.05.31 at 11:45:27 PM CEST 
006//
007
008
009package org.jomc.model;
010
011import javax.annotation.Generated;
012import javax.xml.bind.annotation.XmlAccessType;
013import javax.xml.bind.annotation.XmlAccessorType;
014import javax.xml.bind.annotation.XmlAttribute;
015import javax.xml.bind.annotation.XmlSeeAlso;
016import javax.xml.bind.annotation.XmlType;
017import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
018import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
019
020
021/**
022 * Reference to a specification.
023 * 
024 * <p>Java class for SpecificationReference complex type.
025 * 
026 * <p>The following schema fragment specifies the expected content contained within this class.
027 * 
028 * <pre>
029 * &lt;complexType name="SpecificationReference">
030 *   &lt;complexContent>
031 *     &lt;extension base="{http://jomc.org/model}ModelObject">
032 *       &lt;attribute name="identifier" use="required" type="{http://jomc.org/model}Identifier" />
033 *       &lt;attribute name="version" type="{http://jomc.org/model}Version" />
034 *       &lt;attribute name="final" type="{http://jomc.org/model}Flag" default="false" />
035 *       &lt;attribute name="override" type="{http://jomc.org/model}Flag" default="false" />
036 *     &lt;/extension>
037 *   &lt;/complexContent>
038 * &lt;/complexType>
039 * </pre>
040 * 
041 * 
042 */
043@XmlAccessorType(XmlAccessType.FIELD)
044@XmlType(name = "SpecificationReference", namespace = "http://jomc.org/model")
045@XmlSeeAlso({
046    Dependency.class
047})
048@Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
049public class SpecificationReference
050    extends ModelObject
051    implements Cloneable, Inheritable
052{
053
054    @XmlAttribute(name = "identifier", required = true)
055    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
056    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
057    protected String identifier;
058    @XmlAttribute(name = "version")
059    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
060    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
061    protected String version;
062    @XmlAttribute(name = "final")
063    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
064    protected Boolean _final;
065    @XmlAttribute(name = "override")
066    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
067    protected Boolean override;
068
069    /**
070     * Creates a new {@code SpecificationReference} instance.
071     * 
072     */
073    public SpecificationReference() {
074        // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
075        super();
076    }
077
078    /**
079     * Creates a new {@code SpecificationReference} instance by deeply copying a given {@code SpecificationReference} instance.
080     * 
081     * 
082     * @param o
083     *     The instance to copy.
084     * @throws NullPointerException
085     *     if {@code o} is {@code null}.
086     */
087    public SpecificationReference(final SpecificationReference o) {
088        // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
089        super(o);
090        if (o == null) {
091            throw new NullPointerException("Cannot create a copy of 'SpecificationReference' from 'null'.");
092        }
093        // CBuiltinLeafInfo: java.lang.String
094        this.identifier = ((o.identifier == null)?null:o.getIdentifier());
095        // CBuiltinLeafInfo: java.lang.String
096        this.version = ((o.version == null)?null:o.getVersion());
097        // CBuiltinLeafInfo: java.lang.Boolean
098        this._final = ((o._final == null)?null:o.isFinal());
099        // CBuiltinLeafInfo: java.lang.Boolean
100        this.override = ((o.override == null)?null:o.isOverride());
101    }
102
103    /**
104     * The identifier of the referenced specification.
105     * 
106     * @return
107     *     possible object is
108     *     {@link String }
109     *     
110     */
111    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
112    public String getIdentifier() {
113        return identifier;
114    }
115
116    /**
117     * Sets the value of the identifier property.
118     * 
119     * @param value
120     *     allowed object is
121     *     {@link String }
122     *     
123     */
124    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
125    public void setIdentifier(String value) {
126        this.identifier = value;
127    }
128
129    /**
130     * The version of the referenced specification or {@code null}.
131     * 
132     * @return
133     *     possible object is
134     *     {@link String }
135     *     
136     */
137    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
138    public String getVersion() {
139        return version;
140    }
141
142    /**
143     * Sets the value of the version property.
144     * 
145     * @param value
146     *     allowed object is
147     *     {@link String }
148     *     
149     */
150    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
151    public void setVersion(String value) {
152        this.version = value;
153    }
154
155    /**
156     * {@code true}, if this specification reference is the final node in an inheritance hierarchy.
157     * 
158     * @return
159     *     possible object is
160     *     {@link Boolean }
161     *     
162     */
163    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
164    public boolean isFinal() {
165        if (_final == null) {
166            return false;
167        } else {
168            return _final;
169        }
170    }
171
172    /**
173     * Sets the value of the final property.
174     * 
175     * @param value
176     *     allowed object is
177     *     {@link Boolean }
178     *     
179     */
180    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
181    public void setFinal(Boolean value) {
182        this._final = value;
183    }
184
185    /**
186     * {@code true}, if this specification reference is intended to override a super specification reference.
187     * 
188     * @return
189     *     possible object is
190     *     {@link Boolean }
191     *     
192     */
193    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
194    public boolean isOverride() {
195        if (override == null) {
196            return false;
197        } else {
198            return override;
199        }
200    }
201
202    /**
203     * Sets the value of the override property.
204     * 
205     * @param value
206     *     allowed object is
207     *     {@link Boolean }
208     *     
209     */
210    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
211    public void setOverride(Boolean value) {
212        this.override = value;
213    }
214
215    /**
216     * Creates and returns a deep copy of this object.
217     * 
218     * 
219     * @return
220     *     A deep copy of this object.
221     */
222    @Override
223    @Generated(value = "com.sun.tools.xjc.Driver", date = "2015-05-31T11:45:26+02:00", comments = "JAXB RI vhudson-jaxb-ri-2.1-2")
224    public SpecificationReference clone() {
225        {
226            // CC-XJC Version 2.0.1 Build 2012-03-02T12:09:12+0000
227            final SpecificationReference clone = ((SpecificationReference) super.clone());
228            // CBuiltinLeafInfo: java.lang.String
229            clone.identifier = ((this.identifier == null)?null:this.getIdentifier());
230            // CBuiltinLeafInfo: java.lang.String
231            clone.version = ((this.version == null)?null:this.getVersion());
232            // CBuiltinLeafInfo: java.lang.Boolean
233            clone._final = ((this._final == null)?null:this.isFinal());
234            // CBuiltinLeafInfo: java.lang.Boolean
235            clone.override = ((this.override == null)?null:this.isOverride());
236            return clone;
237        }
238    }
239
240}