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