| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.openejb.jee.jpa; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| 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; |
| import javax.xml.bind.annotation.XmlTransient; |
| |
| |
| /** |
| * Target({METHOD, FIELD}) @Retention(RUNTIME) |
| * public @interface OneToMany { |
| * Class targetEntity() default void.class; |
| * CascadeType[] cascade() default {}; |
| * FetchType fetch() default LAZY; |
| * String mappedBy() default ""; |
| * } |
| * |
| * |
| * |
| * <p>Java class for one-to-many complex type. |
| * |
| * <p>The following schema fragment specifies the expected content contained within this class. |
| * |
| * <pre> |
| * <complexType name="one-to-many"> |
| * <complexContent> |
| * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
| * <sequence> |
| * <choice> |
| * <element name="order-by" type="{http://java.sun.com/xml/ns/persistence/orm}order-by" minOccurs="0"/> |
| * <element name="order-column" type="{http://java.sun.com/xml/ns/persistence/orm}order-column" minOccurs="0"/> |
| * </choice> |
| * <choice> |
| * <element name="map-key" type="{http://java.sun.com/xml/ns/persistence/orm}map-key" minOccurs="0"/> |
| * <sequence> |
| * <element name="map-key-class" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-class" minOccurs="0"/> |
| * <choice> |
| * <element name="map-key-temporal" type="{http://java.sun.com/xml/ns/persistence/orm}temporal" minOccurs="0"/> |
| * <element name="map-key-enumerated" type="{http://java.sun.com/xml/ns/persistence/orm}enumerated" minOccurs="0"/> |
| * <element name="map-key-attribute-override" type="{http://java.sun.com/xml/ns/persistence/orm}attribute-override" maxOccurs="unbounded" minOccurs="0"/> |
| * </choice> |
| * <choice> |
| * <element name="map-key-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-column" minOccurs="0"/> |
| * <element name="map-key-join-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-join-column" maxOccurs="unbounded" minOccurs="0"/> |
| * </choice> |
| * </sequence> |
| * </choice> |
| * <choice> |
| * <element name="join-table" type="{http://java.sun.com/xml/ns/persistence/orm}join-table" minOccurs="0"/> |
| * <element name="join-column" type="{http://java.sun.com/xml/ns/persistence/orm}join-column" maxOccurs="unbounded" minOccurs="0"/> |
| * </choice> |
| * <element name="cascade" type="{http://java.sun.com/xml/ns/persistence/orm}cascade-type" minOccurs="0"/> |
| * </sequence> |
| * <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> |
| * <attribute name="target-entity" type="{http://www.w3.org/2001/XMLSchema}string" /> |
| * <attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" /> |
| * <attribute name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" /> |
| * <attribute name="mapped-by" type="{http://www.w3.org/2001/XMLSchema}string" /> |
| * <attribute name="orphan-removal" type="{http://www.w3.org/2001/XMLSchema}boolean" /> |
| * </restriction> |
| * </complexContent> |
| * </complexType> |
| * </pre> |
| */ |
| @XmlAccessorType(XmlAccessType.FIELD) |
| @XmlType(name = "one-to-many", propOrder = { |
| "orderBy", |
| "orderColumn", |
| "mapKey", |
| "mapKeyClass", |
| "mapKeyTemporal", |
| "mapKeyEnumerated", |
| "mapKeyAttributeOverride", |
| "mapKeyColumn", |
| "mapKeyJoinColumn", |
| "joinTable", |
| "joinColumn", |
| "cascade" |
| }) |
| public class OneToMany implements RelationField { |
| |
| @XmlElement(name = "order-by") |
| protected String orderBy; |
| @XmlElement(name = "order-column") |
| protected OrderColumn orderColumn; |
| @XmlElement(name = "map-key") |
| protected MapKey mapKey; |
| @XmlElement(name = "map-key-class") |
| protected MapKeyClass mapKeyClass; |
| @XmlElement(name = "map-key-temporal") |
| protected TemporalType mapKeyTemporal; |
| @XmlElement(name = "map-key-enumerated") |
| protected EnumType mapKeyEnumerated; |
| @XmlElement(name = "map-key-attribute-override") |
| protected List<AttributeOverride> mapKeyAttributeOverride; |
| @XmlElement(name = "map-key-column") |
| protected MapKeyColumn mapKeyColumn; |
| @XmlElement(name = "map-key-join-column") |
| protected List<MapKeyJoinColumn> mapKeyJoinColumn; |
| @XmlElement(name = "join-table") |
| protected JoinTable joinTable; |
| @XmlElement(name = "join-column") |
| protected List<JoinColumn> joinColumn; |
| protected CascadeType cascade; |
| @XmlAttribute |
| protected FetchType fetch; |
| @XmlAttribute(name = "mapped-by") |
| protected String mappedBy; |
| @XmlAttribute(name = "orphan-removal") |
| protected Boolean orphanRemoval; |
| @XmlAttribute(required = true) |
| protected String name; |
| @XmlAttribute(name = "target-entity") |
| protected String targetEntity; |
| @XmlTransient |
| protected RelationField relatedField; |
| @XmlTransient |
| protected boolean syntheticField; |
| |
| /** |
| * Gets the value of the orderBy property. |
| * |
| * @return possible object is |
| * {@link String } |
| */ |
| public String getOrderBy() { |
| return orderBy; |
| } |
| |
| /** |
| * Sets the value of the orderBy property. |
| * |
| * @param value allowed object is |
| * {@link String } |
| */ |
| public void setOrderBy(final String value) { |
| this.orderBy = value; |
| } |
| |
| /** |
| * Gets the value of the orderColumn property. |
| * |
| * @return possible object is |
| * {@link OrderColumn } |
| */ |
| public OrderColumn getOrderColumn() { |
| return orderColumn; |
| } |
| |
| /** |
| * Sets the value of the orderColumn property. |
| * |
| * @param value allowed object is |
| * {@link OrderColumn } |
| */ |
| public void setOrderColumn(final OrderColumn value) { |
| this.orderColumn = value; |
| } |
| |
| /** |
| * Gets the value of the mapKey property. |
| * |
| * @return possible object is |
| * {@link MapKey } |
| */ |
| public MapKey getMapKey() { |
| return mapKey; |
| } |
| |
| /** |
| * Sets the value of the mapKey property. |
| * |
| * @param value allowed object is |
| * {@link MapKey } |
| */ |
| public void setMapKey(final MapKey value) { |
| this.mapKey = value; |
| } |
| |
| /** |
| * Gets the value of the mapKeyClass property. |
| * |
| * @return possible object is |
| * {@link MapKeyClass } |
| */ |
| public MapKeyClass getMapKeyClass() { |
| return mapKeyClass; |
| } |
| |
| /** |
| * Sets the value of the mapKeyClass property. |
| * |
| * @param value allowed object is |
| * {@link MapKeyClass } |
| */ |
| public void setMapKeyClass(final MapKeyClass value) { |
| this.mapKeyClass = value; |
| } |
| |
| /** |
| * Gets the value of the mapKeyTemporal property. |
| * |
| * @return possible object is |
| * {@link TemporalType } |
| */ |
| public TemporalType getMapKeyTemporal() { |
| return mapKeyTemporal; |
| } |
| |
| /** |
| * Sets the value of the mapKeyTemporal property. |
| * |
| * @param value allowed object is |
| * {@link TemporalType } |
| */ |
| public void setMapKeyTemporal(final TemporalType value) { |
| this.mapKeyTemporal = value; |
| } |
| |
| /** |
| * Gets the value of the mapKeyEnumerated property. |
| * |
| * @return possible object is |
| * {@link EnumType } |
| */ |
| public EnumType getMapKeyEnumerated() { |
| return mapKeyEnumerated; |
| } |
| |
| /** |
| * Sets the value of the mapKeyEnumerated property. |
| * |
| * @param value allowed object is |
| * {@link EnumType } |
| */ |
| public void setMapKeyEnumerated(final EnumType value) { |
| this.mapKeyEnumerated = value; |
| } |
| |
| /** |
| * Gets the value of the mapKeyAttributeOverride property. |
| * |
| * |
| * This accessor method returns a reference to the live list, |
| * not a snapshot. Therefore any modification you make to the |
| * returned list will be present inside the JAXB object. |
| * This is why there is not a <CODE>set</CODE> method for the mapKeyAttributeOverride property. |
| * |
| * |
| * For example, to add a new item, do as follows: |
| * <pre> |
| * getMapKeyAttributeOverride().add(newItem); |
| * </pre> |
| * |
| * |
| * |
| * Objects of the following type(s) are allowed in the list |
| * {@link AttributeOverride } |
| */ |
| public List<AttributeOverride> getMapKeyAttributeOverride() { |
| if (mapKeyAttributeOverride == null) { |
| mapKeyAttributeOverride = new ArrayList<AttributeOverride>(); |
| } |
| return this.mapKeyAttributeOverride; |
| } |
| |
| /** |
| * Gets the value of the mapKeyColumn property. |
| * |
| * @return possible object is |
| * {@link MapKeyColumn } |
| */ |
| public MapKeyColumn getMapKeyColumn() { |
| return mapKeyColumn; |
| } |
| |
| /** |
| * Sets the value of the mapKeyColumn property. |
| * |
| * @param value allowed object is |
| * {@link MapKeyColumn } |
| */ |
| public void setMapKeyColumn(final MapKeyColumn value) { |
| this.mapKeyColumn = value; |
| } |
| |
| /** |
| * Gets the value of the mapKeyJoinColumn property. |
| * |
| * |
| * This accessor method returns a reference to the live list, |
| * not a snapshot. Therefore any modification you make to the |
| * returned list will be present inside the JAXB object. |
| * This is why there is not a <CODE>set</CODE> method for the mapKeyJoinColumn property. |
| * |
| * |
| * For example, to add a new item, do as follows: |
| * <pre> |
| * getMapKeyJoinColumn().add(newItem); |
| * </pre> |
| * |
| * |
| * |
| * Objects of the following type(s) are allowed in the list |
| * {@link MapKeyJoinColumn } |
| */ |
| public List<MapKeyJoinColumn> getMapKeyJoinColumn() { |
| if (mapKeyJoinColumn == null) { |
| mapKeyJoinColumn = new ArrayList<MapKeyJoinColumn>(); |
| } |
| return this.mapKeyJoinColumn; |
| } |
| |
| /** |
| * Gets the value of the joinTable property. |
| * |
| * @return possible object is |
| * {@link JoinTable } |
| */ |
| public JoinTable getJoinTable() { |
| return joinTable; |
| } |
| |
| /** |
| * Sets the value of the joinTable property. |
| * |
| * @param value allowed object is |
| * {@link JoinTable } |
| */ |
| public void setJoinTable(final JoinTable value) { |
| this.joinTable = value; |
| } |
| |
| /** |
| * Gets the value of the joinColumn property. |
| * |
| * |
| * This accessor method returns a reference to the live list, |
| * not a snapshot. Therefore any modification you make to the |
| * returned list will be present inside the JAXB object. |
| * This is why there is not a <CODE>set</CODE> method for the joinColumn property. |
| * |
| * |
| * For example, to add a new item, do as follows: |
| * <pre> |
| * getJoinColumn().add(newItem); |
| * </pre> |
| * |
| * |
| * |
| * Objects of the following type(s) are allowed in the list |
| * {@link JoinColumn } |
| */ |
| public List<JoinColumn> getJoinColumn() { |
| if (joinColumn == null) { |
| joinColumn = new ArrayList<JoinColumn>(); |
| } |
| return this.joinColumn; |
| } |
| |
| /** |
| * Gets the value of the cascade property. |
| * |
| * @return possible object is |
| * {@link CascadeType } |
| */ |
| public CascadeType getCascade() { |
| return cascade; |
| } |
| |
| /** |
| * Sets the value of the cascade property. |
| * |
| * @param value allowed object is |
| * {@link CascadeType } |
| */ |
| public void setCascade(final CascadeType value) { |
| this.cascade = value; |
| } |
| |
| /** |
| * Gets the value of the fetch property. |
| * |
| * @return possible object is |
| * {@link FetchType } |
| */ |
| public FetchType getFetch() { |
| return fetch; |
| } |
| |
| /** |
| * Sets the value of the fetch property. |
| * |
| * @param value allowed object is |
| * {@link FetchType } |
| */ |
| public void setFetch(final FetchType value) { |
| this.fetch = value; |
| } |
| |
| /** |
| * Gets the value of the mappedBy property. |
| * |
| * @return possible object is |
| * {@link String } |
| */ |
| public String getMappedBy() { |
| return mappedBy; |
| } |
| |
| /** |
| * Sets the value of the mappedBy property. |
| * |
| * @param value allowed object is |
| * {@link String } |
| */ |
| public void setMappedBy(final String value) { |
| this.mappedBy = value; |
| } |
| |
| /** |
| * Gets the value of the name property. |
| * |
| * @return possible object is |
| * {@link String } |
| */ |
| public String getName() { |
| return name; |
| } |
| |
| /** |
| * Sets the value of the name property. |
| * |
| * @param value allowed object is |
| * {@link String } |
| */ |
| public void setName(final String value) { |
| this.name = value; |
| } |
| |
| /** |
| * Gets the value of the targetEntity property. |
| * |
| * @return possible object is |
| * {@link String } |
| */ |
| public String getTargetEntity() { |
| return targetEntity; |
| } |
| |
| /** |
| * Sets the value of the targetEntity property. |
| * |
| * @param value allowed object is |
| * {@link String } |
| */ |
| public void setTargetEntity(final String value) { |
| this.targetEntity = value; |
| } |
| |
| /** |
| * This is only used for xml converters and will normally return null. |
| * Gets the field on the target entity for this relationship. |
| * |
| * @return the field on the target entity for this relationship. |
| */ |
| public RelationField getRelatedField() { |
| return relatedField; |
| } |
| |
| /** |
| * Gets the field on the target entity for this relationship. |
| * |
| * @param value field on the target entity for this relationship. |
| */ |
| public void setRelatedField(final RelationField value) { |
| this.relatedField = value; |
| } |
| |
| /** |
| * This is only used for xml converters and will normally return false. |
| * A true value indicates that this field was generated for CMR back references. |
| * |
| * @return true if this field was generated for CMR back references. |
| */ |
| public boolean isSyntheticField() { |
| return syntheticField; |
| } |
| |
| /** |
| * This is only used for xml converters and will normally return false. |
| * A true value indicates that this field was generated for CMR back references. |
| * |
| * @return true if this field was generated for CMR back references. |
| */ |
| public void setSyntheticField(final boolean syntheticField) { |
| this.syntheticField = syntheticField; |
| } |
| |
| /** |
| * Gets the value of the orphanRemoval property. |
| * |
| * @return possible object is |
| * {@link Boolean } |
| */ |
| public Boolean isOrphanRemoval() { |
| return orphanRemoval; |
| } |
| |
| /** |
| * Sets the value of the orphanRemoval property. |
| * |
| * @param value allowed object is |
| * {@link Boolean } |
| */ |
| public void setOrphanRemoval(final Boolean value) { |
| this.orphanRemoval = value; |
| } |
| |
| public Object getKey() { |
| return name; |
| } |
| } |