blob: 31a600a181c16589455734d06dad11c618bdf8fd [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.relationshipmaintenance;
import org.eclipse.persistence.sessions.*;
import org.eclipse.persistence.tools.schemaframework.*;
import org.eclipse.persistence.testing.framework.*;
/**
* This model is a complex ownership model. The complex ownership test cases
* would use this model to test TopLink ownership feature.
*/
public class RelationshipsSystem extends TestSystem {
public RelationshipsSystem() {
project = new RelationshipsProject();
}
@Override
public void addDescriptors(DatabaseSession session) {
if (project == null) {
project = new RelationshipsProject();
}
session.addDescriptors(project);
}
@Override
public void createTables(DatabaseSession session) {
new RelationshipsTableCreator().replaceTables(session);
SchemaManager schemaManager = new SchemaManager(session);
schemaManager.createSequences();
}
@Override
public void populate(DatabaseSession session) {
FieldOffice fieldOffice1 = new FieldOffice();
FieldOffice fieldOffice2 = new FieldOffice();
FieldLocation fieldLocation1 = FieldLocation.example1();
FieldLocation fieldLocation2 = FieldLocation.example2();
fieldOffice1.setLocation(fieldLocation1);
fieldOffice2.setLocation(fieldLocation2);
FieldManager manager1 = FieldManager.example1();
FieldManager manager2 = FieldManager.example2();
fieldOffice1.setManager(manager1);
manager1.setOffice(fieldOffice1);
fieldOffice2.setManager(manager2);
manager2.setOffice(fieldOffice2);
// setup SalesPerson objects
SalesPerson salesPerson1 = SalesPerson.example1();
SalesPerson salesPerson2 = SalesPerson.example2();
SalesPerson salesPerson3 = SalesPerson.example3();
SalesPerson salesPerson4 = SalesPerson.example4();
SalesPerson salesPerson5 = SalesPerson.example5();
fieldOffice1.addSalesPerson(salesPerson1);
salesPerson1.setFieldOffice(fieldOffice1);
fieldOffice1.addSalesPerson(salesPerson2);
salesPerson2.setFieldOffice(fieldOffice1);
fieldOffice2.addSalesPerson(salesPerson3);
salesPerson3.setFieldOffice(fieldOffice2);
fieldOffice2.addSalesPerson(salesPerson4);
salesPerson4.setFieldOffice(fieldOffice2);
fieldOffice2.addSalesPerson(salesPerson5);
salesPerson5.setFieldOffice(fieldOffice2);
fieldOffice1.getResources().add(new Resource("Copier 454", fieldOffice1));
fieldOffice1.getResources().add(new Resource("Fax 123", fieldOffice1));
fieldOffice1.getResources().add(new Resource("Overhead Projector 23", fieldOffice1));
fieldOffice2.getResources().add(new Resource("LCD Projector", fieldOffice2));
fieldOffice2.getResources().add(new Resource("Silverado", fieldOffice2));
fieldOffice2.getResources().add(new Resource("SV650", fieldOffice2));
// setup Customers, associate them with SalesPeople.
Customer customer1 = Customer.example1();
Customer customer2 = Customer.example2();
Customer customer3 = Customer.example3();
Customer customer4 = Customer.example4();
Customer customer5 = Customer.example5();
salesPerson1.addCustomer(customer1);
customer1.addSalesPerson(salesPerson1);
salesPerson1.addCustomer(customer2);
customer2.addSalesPerson(salesPerson1);
salesPerson2.addCustomer(customer2);
customer2.addSalesPerson(salesPerson2);
salesPerson2.addCustomer(customer3);
customer3.addSalesPerson(salesPerson2);
salesPerson3.addCustomer(customer4);
customer4.addSalesPerson(salesPerson3);
salesPerson4.addCustomer(customer4);
customer4.addSalesPerson(salesPerson4);
salesPerson4.addCustomer(customer5);
customer5.addSalesPerson(salesPerson4);
UnitOfWork uow = session.acquireUnitOfWork();
uow.registerObject(fieldOffice1);
uow.registerObject(fieldOffice2);
Dept dept = new Dept();
dept.setDeptno(5.0);
dept.setDname("Goofs");
Emp emp = new Emp();
emp.setEmpno(5.0);
emp.setEname("Anthony");
emp.setDeptno(dept);
Emp emp1 = new Emp();
emp1.setEmpno(6.0);
emp1.setEname("Bob");
emp1.setDeptno(dept);
Emp emp2 = new Emp();
emp2.setEmpno(7.0);
emp2.setEname("Fargo");
emp2.setDeptno(dept);
Emp emp3 = new Emp();
emp3.setEmpno(8.0);
emp3.setEname("Oneder");
emp3.setDeptno(dept);
uow.registerObject(dept);
uow.registerObject(emp);
uow.registerObject(emp1);
uow.registerObject(emp2);
uow.registerObject(emp3);
uow.commit();
}
}