| /* |
| * 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(Double.valueOf(5.0)); |
| dept.setDname("Goofs"); |
| |
| Emp emp = new Emp(); |
| emp.setEmpno(Double.valueOf(5.0)); |
| emp.setEname("Anthony"); |
| emp.setDeptno(dept); |
| |
| Emp emp1 = new Emp(); |
| emp1.setEmpno(Double.valueOf(6.0)); |
| emp1.setEname("Bob"); |
| emp1.setDeptno(dept); |
| |
| Emp emp2 = new Emp(); |
| emp2.setEmpno(Double.valueOf(7.0)); |
| emp2.setEname("Fargo"); |
| emp2.setDeptno(dept); |
| |
| Emp emp3 = new Emp(); |
| emp3.setEmpno(Double.valueOf(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(); |
| |
| } |
| } |