blob: 12e71dca737a68d05cf9f22e85c43dcd759f3ab6 [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.tests.proxyindirection;
import java.util.Vector;
import org.eclipse.persistence.sessions.DatabaseSession;
import org.eclipse.persistence.sessions.UnitOfWork;
import org.eclipse.persistence.testing.framework.TestSystem;
public class ProxyIndirectionSystem extends TestSystem {
public ProxyIndirectionSystem() {
project = new ProxyIndirectionProject();
}
@Override
public void addDescriptors(DatabaseSession session) {
Vector descriptors = new Vector();
if (project == null) {
project = new ProxyIndirectionProject();
}
(session).addDescriptors(project);
}
@Override
public void createTables(DatabaseSession session) {
ProxyIndirectionTableCreator creator = new ProxyIndirectionTableCreator();
creator.replaceTables(session);
}
@Override
public void populate(DatabaseSession session) {
// ===================================
// Create model objects
// ===================================
Employee emp1 = new EmployeeImpl();
emp1.setFirstName("Rick");
emp1.setLastName("Barkhouse");
emp1.setGender("Male");
emp1.setAge(24);
Employee emp2 = new EmployeeImpl();
emp2.setFirstName("Angie");
emp2.setLastName("MacIvor");
emp2.setGender("Female");
emp2.setAge(24);
Employee emp3 = new EmployeeImpl();
emp3.setFirstName("James");
emp3.setLastName("Sutherland");
emp3.setGender("Male");
emp3.setAge(28);
Address add1 = new AddressImpl();
add1.setStreet("509-171 Lees Ave.");
add1.setCity("Ottawa");
add1.setState("ON");
add1.setCountry("Canada");
add1.setPostalCode("K1S 5P3");
Address add2 = new AddressImpl();
add2.setStreet("14421 Baseline Rd.");
add2.setCity("Ottawa");
add2.setState("ON");
add2.setCountry("Canada");
add2.setPostalCode("K1T 5A1");
Cubicle cube1 = new CubicleImpl();
cube1.setLength(5.7f);
cube1.setWidth(5.7f);
cube1.setHeight(5.0f);
Cubicle cube2 = new CubicleImpl();
cube2.setLength(6.4f);
cube2.setWidth(5.7f);
cube2.setHeight(5.0f);
Cubicle cube3 = new CubicleImpl();
cube3.setLength(8.4f);
cube3.setWidth(8.7f);
cube3.setHeight(5.0f);
Project project1 = new ProjectImpl();
project1.setName("Support Tracker 3");
project1.setDescription("Customer support software to keep track of support e-mail");
LargeProject project2 = new LargeProjectImpl();
project2.setName("Virtual Coffee Machine");
project2.setDescription("Espresso machine simulator written in Java");
project2.setBudget(125000);
project2.setInvestor("Second Cup Coffee Co.");
EmailImpl email1 = new EmailImpl();
email1.setIsPublic(true);
email1.setWantsHTMLMail(true);
email1.setUsername("rick_barkhouse");
email1.setDomain("yahoo.ca");
EmailImpl email2 = new EmailImpl();
email2.setIsPublic(true);
email2.setWantsHTMLMail(false);
email2.setUsername("amacivor");
email2.setDomain("sympatico.ca");
PhoneImpl phone1 = new PhoneImpl();
phone1.setIsPublic(false);
phone1.setNumber("613-123-4567");
phone1.setType(PhoneImpl.CELL);
DesktopComputer comp1 = new DesktopComputerImpl();
comp1.setDescription("Compaq Pentium 200");
comp1.setSerialNumber("CP18176-187262");
comp1.setMoniterSize(21);
DesktopComputer comp2 = new DesktopComputerImpl();
comp2.setDescription("Acer PentiumII 300");
comp2.setSerialNumber("2876-298769232736");
comp2.setMoniterSize(19);
DesktopComputer comp3 = new DesktopComputerImpl();
comp3.setDescription("Micron PentiumII 450");
comp3.setSerialNumber("OU812-URABUTLN");
comp3.setMoniterSize(17);
// ===================================
// Register and make relationships
// ===================================
UnitOfWork uow = session.acquireUnitOfWork();
uow.registerNewObject(cube1);
uow.registerNewObject(cube2);
uow.registerNewObject(cube3);
uow.assignSequenceNumbers();
cube1.setEmployee(emp1);
cube2.setEmployee(emp2);
cube3.setEmployee(emp3);
cube1.setComputer(comp1);
cube2.setComputer(comp2);
cube3.setComputer(comp3);
emp1.setAddress(add1);
emp1.setProject(project1);
emp1.setLargeProject(project2);
emp1.setCubicleID(cube1.getID());
emp1.setContact(email1);
emp2.setAddress(add1);
emp2.setProject(project2);
emp2.setCubicleID(cube2.getID());
emp2.setContact(email2);
emp3.setAddress(add2);
emp3.setCubicleID(cube3.getID());
emp3.addManagedEmployee(emp1);
emp3.addManagedEmployee(emp2);
emp3.setContact(phone1);
uow.commit();
}
}