blob: b13f7332d9cd66c0ac1dc9f31b30b4f8b7ccbfcf [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.models.interfaces;
import org.eclipse.persistence.descriptors.*;
import org.eclipse.persistence.mappings.*;
import org.eclipse.persistence.tools.schemaframework.*;
import org.eclipse.persistence.indirection.*;
public class Employee implements ContactHolder, java.io.Serializable, Cloneable {
public Number id;
public String name;
public Contact contact;
public ValueHolderInterface secondaryContact = new ValueHolder();
public Asset asset1;
public Asset asset2;
public static void addToDescriptor(ClassDescriptor des) {
AggregateObjectMapping map = (AggregateObjectMapping)des.getMappingForAttributeName("asset2");
map.addFieldNameTranslation("INT_EMP.ASSET2_TYPE", "INT_EMP.ASSET_TYPE");
}
/**
* This method was written to do a shallow clone of the employee object
*/
@Override
public Object clone() {
Employee clone = new Employee();
clone.id = this.id;
clone.name = this.name;
clone.contact = this.contact;
clone.asset1 = (Asset)this.asset1.clone();
clone.asset2 = (Asset)this.asset2.clone(); // added to test the V1-1 deep merge clone
clone.secondaryContact = this.secondaryContact;
return clone;
}
public static Employee example1() {
Employee example = new Employee();
example.setName("Betty");
example.setContact(Phone.example1());
example.getContact().setHolder(example);
example.asset1 = new Asset();
example.asset1.setAsset(Computer.example1());
example.asset2 = new Asset();
example.asset2.setAsset(Computer.example2());
example.setSecondaryContact(Phone.example2());
return example;
}
public static Employee example2() {
Employee example = new Employee();
example.setName("Chris");
example.setContact(Phone.example1());
example.getContact().setHolder(example);
example.asset1 = new Asset();
example.asset1.asset = Vehicle.example1();
example.asset2 = new Asset();
example.asset2.asset = Computer.example3();
example.setSecondaryContact(Email.example3());
return example;
}
public static Employee example3() {
Employee example = new Employee();
example.setName("Jude");
example.setContact(Email.example2());
example.getContact().setHolder(example);
example.asset1 = new Asset();
example.asset1.asset = Vehicle.example2();
example.asset2 = new Asset();
example.asset2.asset = Vehicle.example3();
return example;
}
public static Employee example4() {
Employee example = new Employee();
example.setName("Brendan");
example.setContact(null);
example.asset1 = new Asset();
example.asset1.asset = Vehicle.example2();
example.asset2 = new Asset();
example.asset2.asset = Vehicle.example3();
return example;
}
@Override
public Contact getContact() {
return contact;
}
@Override
public Number getId() {
return this.id;
}
public String getName() {
return this.name;
}
public Contact getSecondaryContact() {
return (Contact)secondaryContact.getValue();
}
@Override
public void setContact(Contact contact) {
this.contact = contact;
}
@Override
public void setId(Number id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setSecondaryContact(Contact aContact) {
secondaryContact.setValue(aContact);
}
public static TableDefinition tableDefinition() {
TableDefinition table = new TableDefinition();
table.setName("INT_EMP");
table.addField("ID", java.math.BigDecimal.class, 15);
table.addField("NAME", String.class, 30);
table.addField("CON_ID", java.math.BigDecimal.class, 15);
//table.addField("CONTACT_TYPE",String.class, 5);
table.addField("CONTACT_TYPE", Float.class, 5); // TO TEST NUMERIC TYPE INDICATOR
table.addField("ASSET_ID", java.math.BigDecimal.class, 15);
table.addField("ASSET_TYPE", String.class, 5);
table.addField("ASSET2_ID", java.math.BigDecimal.class, 15);
table.addField("ASSET2_TYPE", String.class, 5);
table.addField("SEC_CON_ID", java.math.BigDecimal.class, 15);
//table.addField("SEC_CONTACT_TYPE",String.class, 5);
table.addField("SEC_CONTACT_TYPE", Float.class, 5); // TO TEST NUMERIC TYPE INDICATOR
return table;
}
public String toString() {
return getName();
}
}