001//
002// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 
003// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> 
004// Any modifications to this file will be lost upon recompilation of the source schema. 
005// Generated on: 2018.12.10 at 03:02:30 PM PST 
006//
007
008
009package org.microbean.jpa.jaxb;
010
011import java.util.ArrayList;
012import java.util.List;
013import javax.xml.bind.annotation.XmlAccessType;
014import javax.xml.bind.annotation.XmlAccessorType;
015import javax.xml.bind.annotation.XmlAttribute;
016import javax.xml.bind.annotation.XmlElement;
017import javax.xml.bind.annotation.XmlType;
018
019
020/**
021 * 
022 * 
023 *         @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
024 *         public @interface AssociationOverride {
025 *           String name();
026 *           JoinColumn[] joinColumns() default{};
027 *           JoinTable joinTable() default @JoinTable;
028 *         }
029 * 
030 *       
031 * 
032 * <p>Java class for association-override complex type.
033 * 
034 * <p>The following schema fragment specifies the expected content contained within this class.
035 * 
036 * <pre>
037 * &lt;complexType name="association-override"&gt;
038 *   &lt;complexContent&gt;
039 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
040 *       &lt;sequence&gt;
041 *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
042 *         &lt;choice&gt;
043 *           &lt;sequence&gt;
044 *             &lt;element name="join-column" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}join-column" maxOccurs="unbounded" minOccurs="0"/&gt;
045 *             &lt;element name="foreign-key" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}foreign-key" minOccurs="0"/&gt;
046 *           &lt;/sequence&gt;
047 *           &lt;element name="join-table" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}join-table" minOccurs="0"/&gt;
048 *         &lt;/choice&gt;
049 *       &lt;/sequence&gt;
050 *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
051 *     &lt;/restriction&gt;
052 *   &lt;/complexContent&gt;
053 * &lt;/complexType&gt;
054 * </pre>
055 * 
056 * 
057 */
058@XmlAccessorType(XmlAccessType.FIELD)
059@XmlType(name = "association-override", propOrder = {
060    "description",
061    "joinColumn",
062    "foreignKey",
063    "joinTable"
064})
065public class AssociationOverride {
066
067    protected String description;
068    @XmlElement(name = "join-column")
069    protected List<JoinColumn> joinColumn;
070    @XmlElement(name = "foreign-key")
071    protected ForeignKey foreignKey;
072    @XmlElement(name = "join-table")
073    protected JoinTable joinTable;
074    @XmlAttribute(name = "name", required = true)
075    protected String name;
076
077    /**
078     * Gets the value of the description property.
079     * 
080     * @return
081     *     possible object is
082     *     {@link String }
083     *     
084     */
085    public String getDescription() {
086        return description;
087    }
088
089    /**
090     * Sets the value of the description property.
091     * 
092     * @param value
093     *     allowed object is
094     *     {@link String }
095     *     
096     */
097    public void setDescription(String value) {
098        this.description = value;
099    }
100
101    /**
102     * Gets the value of the joinColumn property.
103     * 
104     * <p>
105     * This accessor method returns a reference to the live list,
106     * not a snapshot. Therefore any modification you make to the
107     * returned list will be present inside the JAXB object.
108     * This is why there is not a <CODE>set</CODE> method for the joinColumn property.
109     * 
110     * <p>
111     * For example, to add a new item, do as follows:
112     * <pre>
113     *    getJoinColumn().add(newItem);
114     * </pre>
115     * 
116     * 
117     * <p>
118     * Objects of the following type(s) are allowed in the list
119     * {@link JoinColumn }
120     * 
121     * 
122     */
123    public List<JoinColumn> getJoinColumn() {
124        if (joinColumn == null) {
125            joinColumn = new ArrayList<JoinColumn>();
126        }
127        return this.joinColumn;
128    }
129
130    /**
131     * Gets the value of the foreignKey property.
132     * 
133     * @return
134     *     possible object is
135     *     {@link ForeignKey }
136     *     
137     */
138    public ForeignKey getForeignKey() {
139        return foreignKey;
140    }
141
142    /**
143     * Sets the value of the foreignKey property.
144     * 
145     * @param value
146     *     allowed object is
147     *     {@link ForeignKey }
148     *     
149     */
150    public void setForeignKey(ForeignKey value) {
151        this.foreignKey = value;
152    }
153
154    /**
155     * Gets the value of the joinTable property.
156     * 
157     * @return
158     *     possible object is
159     *     {@link JoinTable }
160     *     
161     */
162    public JoinTable getJoinTable() {
163        return joinTable;
164    }
165
166    /**
167     * Sets the value of the joinTable property.
168     * 
169     * @param value
170     *     allowed object is
171     *     {@link JoinTable }
172     *     
173     */
174    public void setJoinTable(JoinTable value) {
175        this.joinTable = value;
176    }
177
178    /**
179     * Gets the value of the name property.
180     * 
181     * @return
182     *     possible object is
183     *     {@link String }
184     *     
185     */
186    public String getName() {
187        return name;
188    }
189
190    /**
191     * Sets the value of the name property.
192     * 
193     * @param value
194     *     allowed object is
195     *     {@link String }
196     *     
197     */
198    public void setName(String value) {
199        this.name = value;
200    }
201
202}