blob: a443510ba58165c831408b2dc01463ef59171b6a [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// 06/30/2009-2.0 mobrien - finish JPA Metadata API modifications in support
// of the Metamodel implementation for EclipseLink 2.0 release involving
// Map, ElementCollection and Embeddable types on MappedSuperclass descriptors
// - 266912: JPA 2.0 Metamodel API (part of the JSR-317 EJB 3.1 Criteria API)
package org.eclipse.persistence.testing.models.jpa.metamodel;
import static jakarta.persistence.CascadeType.ALL;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.MapKey;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import org.eclipse.persistence.annotations.BasicCollection;
// retain name attribute for testing
@Entity(name="ManuMetamodel")
@Table(name="CMP3_MM_MANUF")
public class Manufacturer extends Corporation implements java.io.Serializable{
private static final long serialVersionUID = 5796354087505114955L;
@Version
@Column(name="MANUF_VERSION")
private int version;
// 322166 test case
@BasicCollection(valueColumn=@Column(name="PARAM"))
private Collection<String> paramCollection;
// If a JoinTable with a JoinColumn is used - then we need a mappedBy on the inverse side here
@OneToMany(cascade=ALL, mappedBy="manufacturer")
private Set<Computer> computers = new HashSet<Computer>();
// If a JoinTable with a JoinColumn is used - then we need a mappedBy on the inverse side here
@OneToMany(cascade=ALL, mappedBy="employer")
private List<HardwareDesigner> hardwareDesigners = new ArrayList<HardwareDesigner>();
// If a JoinTable with a JoinColumn is used - then we need a mappedBy on the inverse side here
//@OneToMany(cascade=ALL, mappedBy="manufacturer")
//private Collection<SoftwareDesigner> softwareDesigners = new HashSet<SoftwareDesigner>();
// If a JoinTable with a JoinColumn is used - then we need a mappedBy on the inverse side here
@OneToMany(cascade=ALL, mappedBy="mappedEmployer")
private Map<String, HardwareDesigner> hardwareDesignersMap;// = new HashMap<String, HardwareDesigner>();
// The following MapAttribute use cases are referenced in Design Issue 63
// http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/metamodel_api#DI_63:_20090824:_Add_Map_support_for_.40MapKey_to_MapAttribute
// UC 1a: Generics KV set, no @MapKey present, PK is singular field
@OneToMany(cascade=ALL, mappedBy="mappedEmployerUC1a")
private Map<String, HardwareDesigner> hardwareDesignersMapUC1a;
// UC 2: Generics KV set, @MapKey is present
@OneToMany(cascade=ALL, mappedBy="mappedEmployerUC2")
@MapKey(name="name")
private Map<String, HardwareDesigner> hardwareDesignersMapUC2;
// UC 4: No Generics KV set, @MapKey is present
@OneToMany(targetEntity=HardwareDesigner.class, cascade=ALL, mappedBy="mappedEmployerUC4")
@MapKey(name="name")
private Map hardwareDesignersMapUC4;
// UC 6: No Generics KV set, no targetEntity set, @MapKey is *(set/unset)
// INVALID
//@OneToMany(cascade=ALL, mappedBy="mappedEmployerUC6")
//private Map hardwareDesignersMapUC6;
// UC 7: Generics KV set, targetEntity is also set, @MapKey is *(set/unset)
// Same as UC1a - that is missing the @MapKey
@OneToMany(targetEntity=HardwareDesigner.class, cascade=ALL, mappedBy="mappedEmployerUC7")
private Map<String, HardwareDesigner> hardwareDesignersMapUC7;
// UC8: no targetEntity, MapKey uses name default
@OneToMany(cascade=ALL, mappedBy="mappedEmployerUC8")
@MapKey // name attribute will default to "id"
private Map<Integer, HardwareDesigner> hardwareDesignersMapUC8;
// UC9: no targetEntity, no MapKey, but generics are set (MapKey has an IdClass with an Embeddable)
@OneToMany(cascade=CascadeType.ALL, mappedBy="mappedManufacturerUC9")
private Map<Board, Enclosure> enclosureByBoardMapUC9;
// UC12: mapKey defined via generics and is a java class defined as an IdClass on the element(value) class
// Define Uppercase Object non-java.lang Basic types
//private Object anObject; // Not supported in JPA
private Boolean aBooleanObject;
private Byte aByteObject;
private Short aShortObject;
private Integer anIntegerObject;
private Long aLongObject;
private BigInteger aBigIntegerObject;
private BigDecimal aBigDecimalObject;
private Float aFloatObject;
private Double aDoubleObject;
private Character aCharacterObject;
//private Enum anEnum;
// Define lowercase primitive non-java.lang un-boxed Basic types
private boolean aBoolean;
private byte aByte;
private short aShort;
private int anInt;
private long aLong;
private float aFloat;
private double aDouble;
private char aChar;
//public enum anEnum { one, two, three};
// Define static types
public Manufacturer() {
}
public int getVersion() {
return version;
}
protected void setVersion(int version) {
this.version = version;
}
public Collection<Computer> getComputers() {
return computers;
}
public void setComputers(Set<Computer> newValue) {
this.computers = newValue;
}
public void addComputer(Computer aComputer) {
getComputers().add(aComputer);
aComputer.setManufacturer(this);
}
public void removeComputer(Computer aComputer) {
getComputers().remove(aComputer);
aComputer.setManufacturer(null);
}
public List<HardwareDesigner> getHardwareDesigners() {
return hardwareDesigners;
}
public void setHardwareDesigners(List<HardwareDesigner> designers) {
this.hardwareDesigners = designers;
}
public Map<String, HardwareDesigner> getHardwareDesignersMap() {
return hardwareDesignersMap;
}
public void setHardwareDesignersMap(Map<String, HardwareDesigner> hardwareDesignersMap) {
this.hardwareDesignersMap = hardwareDesignersMap;
}
public void addHardwareDesignerToMap(HardwareDesigner aDesigner) {
this.getHardwareDesignersMap().put(aDesigner.getName(), aDesigner);
aDesigner.setMappedEmployer(this);
}
public void removeHardwareDesignerFromMapr(HardwareDesigner aDesigner) {
this.getHardwareDesignersMap().remove(aDesigner.getName());
aDesigner.setMappedEmployer(null);
}
public Map<String, HardwareDesigner> getHardwareDesignersMapUC1a() {
return hardwareDesignersMapUC1a;
}
public void addHardwareDesignerToMapUC1a(HardwareDesigner aDesigner) {
this.getHardwareDesignersMapUC1a().put(aDesigner.getName(), aDesigner);
aDesigner.setMappedEmployerUC1a(this);
}
public void setHardwareDesignersMapUC1a(
Map<String, HardwareDesigner> hardwareDesignersMapUC1a) {
this.hardwareDesignersMapUC1a = hardwareDesignersMapUC1a;
}
public Map<String, HardwareDesigner> getHardwareDesignersMapUC2() {
return hardwareDesignersMapUC2;
}
public void addHardwareDesignerToMapUC2(HardwareDesigner aDesigner) {
this.getHardwareDesignersMapUC2().put(aDesigner.getName(), aDesigner);
aDesigner.setMappedEmployerUC2(this);
}
public void setHardwareDesignersMapUC2(
Map<String, HardwareDesigner> hardwareDesignersMapUC2) {
this.hardwareDesignersMapUC2 = hardwareDesignersMapUC2;
}
public Map getHardwareDesignersMapUC4() {
return hardwareDesignersMapUC4;
}
public void addHardwareDesignerToMapUC4(HardwareDesigner aDesigner) {
this.getHardwareDesignersMapUC4().put(aDesigner.getName(), aDesigner);
aDesigner.setMappedEmployerUC4(this);
}
public void setHardwareDesignersMapUC4(Map hardwareDesignersMapUC4) {
this.hardwareDesignersMapUC4 = hardwareDesignersMapUC4;
}
public Map<String, HardwareDesigner> getHardwareDesignersMapUC7() {
return hardwareDesignersMapUC7;
}
public void addHardwareDesignerToMapUC7(HardwareDesigner aDesigner) {
this.getHardwareDesignersMapUC7().put(aDesigner.getName(), aDesigner);
aDesigner.setMappedEmployerUC7(this);
}
public void setHardwareDesignersMapUC7(
Map<String, HardwareDesigner> hardwareDesignersMapUC7) {
this.hardwareDesignersMapUC7 = hardwareDesignersMapUC7;
}
public Map<Integer, HardwareDesigner> getHardwareDesignersMapUC8() {
return hardwareDesignersMapUC8;
}
public void setHardwareDesignersMapUC8(
Map<Integer, HardwareDesigner> hardwareDesignersMapUC8) {
this.hardwareDesignersMapUC8 = hardwareDesignersMapUC8;
}
/*
// Not supported in JPA
public Object getAnObject() {
return anObject;
}
// Not suppoted in JPA
public void setAnObject(Object anObject) {
this.anObject = anObject;
}*/
public Boolean getaBooleanObject() {
return aBooleanObject;
}
public void setaBooleanObject(Boolean aBooleanObject) {
this.aBooleanObject = aBooleanObject;
}
public Byte getaByteObject() {
return aByteObject;
}
public void setaByteObject(Byte aByteObject) {
this.aByteObject = aByteObject;
}
public Short getaShortObject() {
return aShortObject;
}
public void setaShortObject(Short aShortObject) {
this.aShortObject = aShortObject;
}
public Integer getAnIntegerObject() {
return anIntegerObject;
}
public void setAnIntegerObject(Integer anIntegerObject) {
this.anIntegerObject = anIntegerObject;
}
public Long getaLongObject() {
return aLongObject;
}
public void setaLongObject(Long aLongObject) {
this.aLongObject = aLongObject;
}
public BigInteger getaBigIntegerObject() {
return aBigIntegerObject;
}
public void setaBigIntegerObject(BigInteger aBigIntegerObject) {
this.aBigIntegerObject = aBigIntegerObject;
}
public Float getaFloatObject() {
return aFloatObject;
}
public void setaFloatObject(Float aFloatObject) {
this.aFloatObject = aFloatObject;
}
public Double getaDoubleObject() {
return aDoubleObject;
}
public void setaDoubleObject(Double aDoubleObject) {
this.aDoubleObject = aDoubleObject;
}
public Character getaCharacterObject() {
return aCharacterObject;
}
public void setaCharacterObject(Character aCharacterObject) {
this.aCharacterObject = aCharacterObject;
}
public boolean isaBoolean() {
return aBoolean;
}
public void setaBoolean(boolean aBoolean) {
this.aBoolean = aBoolean;
}
public byte getaByte() {
return aByte;
}
public void setaByte(byte aByte) {
this.aByte = aByte;
}
public short getaShort() {
return aShort;
}
public void setaShort(short aShort) {
this.aShort = aShort;
}
public int getAnInt() {
return anInt;
}
public void setAnInt(int anInt) {
this.anInt = anInt;
}
public long getaLong() {
return aLong;
}
public void setaLong(long aLong) {
this.aLong = aLong;
}
public float getaFloat() {
return aFloat;
}
public void setaFloat(float aFloat) {
this.aFloat = aFloat;
}
public double getaDouble() {
return aDouble;
}
public void setaDouble(double aDouble) {
this.aDouble = aDouble;
}
public char getaChar() {
return aChar;
}
public void setaChar(char aChar) {
this.aChar = aChar;
}
public BigDecimal getaBigDecimalObject() {
return aBigDecimalObject;
}
public void setaBigDecimal(BigDecimal aBigDecimalObject) {
this.aBigDecimalObject = aBigDecimalObject;
}
public Map<Board, Enclosure> getEnclosureByBoardMapUC9() {
return enclosureByBoardMapUC9;
}
public void setEnclosureByBoardMapUC9(Map<Board, Enclosure> enclosureByBoardMapUC9) {
this.enclosureByBoardMapUC9 = enclosureByBoardMapUC9;
}
}