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({METHOD, FIELD}) @Retention(RUNTIME)
024 *         public @interface JoinTable {
025 *           String name() default "";
026 *           String catalog() default "";
027 *           String schema() default "";
028 *           JoinColumn[] joinColumns() default {};
029 *           JoinColumn[] inverseJoinColumns() default {};
030 *           UniqueConstraint[] uniqueConstraints() default {};
031 *           Index[] indexes() default {};
032 *         }
033 * 
034 *       
035 * 
036 * <p>Java class for join-table complex type.
037 * 
038 * <p>The following schema fragment specifies the expected content contained within this class.
039 * 
040 * <pre>
041 * &lt;complexType name="join-table"&gt;
042 *   &lt;complexContent&gt;
043 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
044 *       &lt;sequence&gt;
045 *         &lt;sequence&gt;
046 *           &lt;element name="join-column" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}join-column" maxOccurs="unbounded" minOccurs="0"/&gt;
047 *           &lt;element name="foreign-key" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}foreign-key" minOccurs="0"/&gt;
048 *         &lt;/sequence&gt;
049 *         &lt;sequence&gt;
050 *           &lt;element name="inverse-join-column" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}join-column" maxOccurs="unbounded" minOccurs="0"/&gt;
051 *           &lt;element name="inverse-foreign-key" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}foreign-key" minOccurs="0"/&gt;
052 *         &lt;/sequence&gt;
053 *         &lt;element name="unique-constraint" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}unique-constraint" maxOccurs="unbounded" minOccurs="0"/&gt;
054 *         &lt;element name="index" type="{http://xmlns.jcp.org/xml/ns/persistence/orm}index" maxOccurs="unbounded" minOccurs="0"/&gt;
055 *       &lt;/sequence&gt;
056 *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
057 *       &lt;attribute name="catalog" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
058 *       &lt;attribute name="schema" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
059 *     &lt;/restriction&gt;
060 *   &lt;/complexContent&gt;
061 * &lt;/complexType&gt;
062 * </pre>
063 * 
064 * 
065 */
066@XmlAccessorType(XmlAccessType.FIELD)
067@XmlType(name = "join-table", propOrder = {
068    "joinColumn",
069    "foreignKey",
070    "inverseJoinColumn",
071    "inverseForeignKey",
072    "uniqueConstraint",
073    "index"
074})
075public class JoinTable {
076
077    @XmlElement(name = "join-column")
078    protected List<JoinColumn> joinColumn;
079    @XmlElement(name = "foreign-key")
080    protected ForeignKey foreignKey;
081    @XmlElement(name = "inverse-join-column")
082    protected List<JoinColumn> inverseJoinColumn;
083    @XmlElement(name = "inverse-foreign-key")
084    protected ForeignKey inverseForeignKey;
085    @XmlElement(name = "unique-constraint")
086    protected List<UniqueConstraint> uniqueConstraint;
087    protected List<Index> index;
088    @XmlAttribute(name = "name")
089    protected String name;
090    @XmlAttribute(name = "catalog")
091    protected String catalog;
092    @XmlAttribute(name = "schema")
093    protected String schema;
094
095    /**
096     * Gets the value of the joinColumn property.
097     * 
098     * <p>
099     * This accessor method returns a reference to the live list,
100     * not a snapshot. Therefore any modification you make to the
101     * returned list will be present inside the JAXB object.
102     * This is why there is not a <CODE>set</CODE> method for the joinColumn property.
103     * 
104     * <p>
105     * For example, to add a new item, do as follows:
106     * <pre>
107     *    getJoinColumn().add(newItem);
108     * </pre>
109     * 
110     * 
111     * <p>
112     * Objects of the following type(s) are allowed in the list
113     * {@link JoinColumn }
114     * 
115     * 
116     */
117    public List<JoinColumn> getJoinColumn() {
118        if (joinColumn == null) {
119            joinColumn = new ArrayList<JoinColumn>();
120        }
121        return this.joinColumn;
122    }
123
124    /**
125     * Gets the value of the foreignKey property.
126     * 
127     * @return
128     *     possible object is
129     *     {@link ForeignKey }
130     *     
131     */
132    public ForeignKey getForeignKey() {
133        return foreignKey;
134    }
135
136    /**
137     * Sets the value of the foreignKey property.
138     * 
139     * @param value
140     *     allowed object is
141     *     {@link ForeignKey }
142     *     
143     */
144    public void setForeignKey(ForeignKey value) {
145        this.foreignKey = value;
146    }
147
148    /**
149     * Gets the value of the inverseJoinColumn property.
150     * 
151     * <p>
152     * This accessor method returns a reference to the live list,
153     * not a snapshot. Therefore any modification you make to the
154     * returned list will be present inside the JAXB object.
155     * This is why there is not a <CODE>set</CODE> method for the inverseJoinColumn property.
156     * 
157     * <p>
158     * For example, to add a new item, do as follows:
159     * <pre>
160     *    getInverseJoinColumn().add(newItem);
161     * </pre>
162     * 
163     * 
164     * <p>
165     * Objects of the following type(s) are allowed in the list
166     * {@link JoinColumn }
167     * 
168     * 
169     */
170    public List<JoinColumn> getInverseJoinColumn() {
171        if (inverseJoinColumn == null) {
172            inverseJoinColumn = new ArrayList<JoinColumn>();
173        }
174        return this.inverseJoinColumn;
175    }
176
177    /**
178     * Gets the value of the inverseForeignKey property.
179     * 
180     * @return
181     *     possible object is
182     *     {@link ForeignKey }
183     *     
184     */
185    public ForeignKey getInverseForeignKey() {
186        return inverseForeignKey;
187    }
188
189    /**
190     * Sets the value of the inverseForeignKey property.
191     * 
192     * @param value
193     *     allowed object is
194     *     {@link ForeignKey }
195     *     
196     */
197    public void setInverseForeignKey(ForeignKey value) {
198        this.inverseForeignKey = value;
199    }
200
201    /**
202     * Gets the value of the uniqueConstraint property.
203     * 
204     * <p>
205     * This accessor method returns a reference to the live list,
206     * not a snapshot. Therefore any modification you make to the
207     * returned list will be present inside the JAXB object.
208     * This is why there is not a <CODE>set</CODE> method for the uniqueConstraint property.
209     * 
210     * <p>
211     * For example, to add a new item, do as follows:
212     * <pre>
213     *    getUniqueConstraint().add(newItem);
214     * </pre>
215     * 
216     * 
217     * <p>
218     * Objects of the following type(s) are allowed in the list
219     * {@link UniqueConstraint }
220     * 
221     * 
222     */
223    public List<UniqueConstraint> getUniqueConstraint() {
224        if (uniqueConstraint == null) {
225            uniqueConstraint = new ArrayList<UniqueConstraint>();
226        }
227        return this.uniqueConstraint;
228    }
229
230    /**
231     * Gets the value of the index property.
232     * 
233     * <p>
234     * This accessor method returns a reference to the live list,
235     * not a snapshot. Therefore any modification you make to the
236     * returned list will be present inside the JAXB object.
237     * This is why there is not a <CODE>set</CODE> method for the index property.
238     * 
239     * <p>
240     * For example, to add a new item, do as follows:
241     * <pre>
242     *    getIndex().add(newItem);
243     * </pre>
244     * 
245     * 
246     * <p>
247     * Objects of the following type(s) are allowed in the list
248     * {@link Index }
249     * 
250     * 
251     */
252    public List<Index> getIndex() {
253        if (index == null) {
254            index = new ArrayList<Index>();
255        }
256        return this.index;
257    }
258
259    /**
260     * Gets the value of the name property.
261     * 
262     * @return
263     *     possible object is
264     *     {@link String }
265     *     
266     */
267    public String getName() {
268        return name;
269    }
270
271    /**
272     * Sets the value of the name property.
273     * 
274     * @param value
275     *     allowed object is
276     *     {@link String }
277     *     
278     */
279    public void setName(String value) {
280        this.name = value;
281    }
282
283    /**
284     * Gets the value of the catalog property.
285     * 
286     * @return
287     *     possible object is
288     *     {@link String }
289     *     
290     */
291    public String getCatalog() {
292        return catalog;
293    }
294
295    /**
296     * Sets the value of the catalog property.
297     * 
298     * @param value
299     *     allowed object is
300     *     {@link String }
301     *     
302     */
303    public void setCatalog(String value) {
304        this.catalog = value;
305    }
306
307    /**
308     * Gets the value of the schema property.
309     * 
310     * @return
311     *     possible object is
312     *     {@link String }
313     *     
314     */
315    public String getSchema() {
316        return schema;
317    }
318
319    /**
320     * Sets the value of the schema property.
321     * 
322     * @param value
323     *     allowed object is
324     *     {@link String }
325     *     
326     */
327    public void setSchema(String value) {
328        this.schema = value;
329    }
330
331}