/******************************************************************************* * Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink * Dies Koper - use the default sequence name from the platform ******************************************************************************/ package org.eclipse.persistence.testing.models.interfaces; import org.eclipse.persistence.sessions.*; import org.eclipse.persistence.testing.framework.*; import org.eclipse.persistence.tools.schemaframework.*; public class InterfaceWithoutTablesSystem extends TestSystem { public InterfaceWithoutTablesSystem() { project = new InterfaceWithoutTablesProject(); } public void addDescriptors(DatabaseSession session) { Admendments.addToManagerialJobDescriptor(project.getDescriptors().get(ManagerialJob.class)); session.addDescriptors(project); } public void createTables(DatabaseSession session) { SchemaManager schemaManager = new SchemaManager(session); schemaManager.replaceObject(Secretary.secretaryTable()); schemaManager.replaceObject(Receptionist.receptionistTable()); schemaManager.replaceObject(ProductManager.productManagerTable()); schemaManager.replaceObject(PersonnelManager.personnelManagerTable()); schemaManager.replaceObject(ProductDeveloper.productDeveloperTable()); schemaManager.replaceObject(CourseDeveloper.courseDeveloperTable()); schemaManager.replaceObject(DevelopmentJob.developmentJobTable()); schemaManager.replaceObject(AdministrativeJob.administrativeJobTable()); schemaManager.replaceObject(Employee.tableDefinition()); schemaManager.replaceObject(Company.tableDefinition()); schemaManager.replaceObject(Email.tableDefinition()); schemaManager.replaceObject(Phone.tableDefinition()); schemaManager.replaceObject(Computer.tableDefinition()); schemaManager.replaceObject(Vehicle.tableDefinition()); schemaManager.replaceObject(Actor.actorTable()); schemaManager.replaceObject(Documentary.documentaryTable()); schemaManager.replaceObject(Film.filmTable()); /** * This hard coded SQL is to ensure that email and phone will have instances with the same primary key * This is important to test the type field fix in 2.5.0.5. * There is no possibility of existing instances being messed up, because all the tables are dropped * here as well */ String sequenceTableName = "SEQUENCE"; if (session.getPlatform().getDefaultSequence().isTable()) { sequenceTableName = session.getPlatform().getQualifiedSequenceTableName(); } session.executeNonSelectingCall(new org.eclipse.persistence.queries.SQLCall("DELETE FROM " + sequenceTableName + " WHERE SEQ_NAME = 'EMAIL_SEQ'")); session.executeNonSelectingCall(new org.eclipse.persistence.queries.SQLCall("DELETE FROM " + sequenceTableName + " WHERE SEQ_NAME = 'PHONE_SEQ'")); schemaManager.createSequences(); } public void populate(DatabaseSession session) { PopulationManager manager = PopulationManager.getDefaultManager(); UnitOfWork unitOfWork = session.acquireUnitOfWork(); /***************************************/ Film film1 = Film.example1(); Film film3 = Film.example3(); Documentary documentary1 = Documentary.example1(); Actor actor4 = Actor.example4(); unitOfWork.registerObject(film1); unitOfWork.registerObject(film3); unitOfWork.registerObject(documentary1); unitOfWork.registerObject(actor4); manager.registerObject(film1, "example1"); manager.registerObject(film3, "example3"); manager.registerObject(documentary1, "example1"); manager.registerObject(actor4, "example4"); /***************************************/ PersonnelManager personnelManager1 = PersonnelManager.example1(); PersonnelManager personnelManager2 = PersonnelManager.example2(); PersonnelManager personnelManager3 = PersonnelManager.example3(); unitOfWork.registerObject(personnelManager1); unitOfWork.registerObject(personnelManager2); unitOfWork.registerObject(personnelManager3); manager.registerObject(personnelManager1, "example1"); manager.registerObject(personnelManager2, "example2"); manager.registerObject(personnelManager3, "example3"); /***************************************/ ProductManager productManager1 = ProductManager.example1(); ProductManager productManager2 = ProductManager.example2(); ProductManager productManager3 = ProductManager.example3(); unitOfWork.registerObject(productManager1); unitOfWork.registerObject(productManager2); unitOfWork.registerObject(productManager3); manager.registerObject(productManager1, "example1"); manager.registerObject(productManager2, "example2"); manager.registerObject(productManager3, "example3"); /***************************************/ ProductDeveloper productDeveloper1 = ProductDeveloper.example1(); ProductDeveloper productDeveloper2 = ProductDeveloper.example2(); ProductDeveloper productDeveloper3 = ProductDeveloper.example3(); unitOfWork.registerObject(productDeveloper1); unitOfWork.registerObject(productDeveloper2); unitOfWork.registerObject(productDeveloper3); manager.registerObject(productDeveloper1, "example1"); manager.registerObject(productDeveloper2, "example2"); manager.registerObject(productDeveloper3, "example3"); /***************************************/ CourseDeveloper courseDeveloper1 = CourseDeveloper.example1(); CourseDeveloper courseDeveloper2 = CourseDeveloper.example2(); CourseDeveloper courseDeveloper3 = CourseDeveloper.example3(); unitOfWork.registerObject(courseDeveloper1); unitOfWork.registerObject(courseDeveloper2); unitOfWork.registerObject(courseDeveloper3); manager.registerObject(courseDeveloper1, "example1"); manager.registerObject(courseDeveloper2, "example2"); manager.registerObject(courseDeveloper3, "example3"); /***************************************/ Secretary secretary1 = Secretary.example1(); Secretary secretary2 = Secretary.example2(); Secretary secretary3 = Secretary.example3(); unitOfWork.registerObject(secretary1); unitOfWork.registerObject(secretary2); unitOfWork.registerObject(secretary3); manager.registerObject(secretary1, "example1"); manager.registerObject(secretary2, "example2"); manager.registerObject(secretary3, "example3"); /***************************************/ Receptionist receptionist1 = Receptionist.example1(); Receptionist receptionist2 = Receptionist.example2(); Receptionist receptionist3 = Receptionist.example3(); unitOfWork.registerObject(receptionist1); unitOfWork.registerObject(receptionist2); unitOfWork.registerObject(receptionist3); manager.registerObject(receptionist1, "example1"); manager.registerObject(receptionist2, "example2"); manager.registerObject(receptionist3, "example3"); /***************************************/ /* Enumeration enum1 = personnelManager1.getManagedEmployees().elements(); while (enum1.hasMoreElements()) { manager.registerObject(enum1.nextElement(), "example1"); } Enumeration enum2 = personnelManager2.getManagedEmployees().elements(); while (enum2.hasMoreElements()) { manager.registerObject(enum2.nextElement(), "example2"); } Enumeration enum3 = personnelManager3.getManagedEmployees().elements(); while (enum3.hasMoreElements()) { manager.registerObject(enum3.nextElement(), "example3"); } */ unitOfWork.commit(); /***************************************/ Employee employee1 = Employee.example1(); Employee employee2 = Employee.example2(); Employee employee3 = Employee.example3(); Employee employee4 = Employee.example4(); UnitOfWork uow = session.acquireUnitOfWork(); uow.registerObject(employee1); uow.registerObject(employee3); uow.registerObject(employee2); uow.registerObject(employee4); uow.commit(); manager.registerObject(employee1, "example1"); manager.registerObject(employee2, "example2"); manager.registerObject(employee3, "example3"); manager.registerObject(employee4, "example4"); /***************************************/ Company company1 = Company.example1(); Company company2 = Company.example2(); Company company3 = Company.example3(); session.writeObject(company1); session.writeObject(company2); session.writeObject(company3); manager.registerObject(company1, "example1"); manager.registerObject(company2, "example2"); manager.registerObject(company3, "example3"); /***************************************/ Email email1 = Email.example1(); Email email2 = Email.example2(); Email email3 = Email.example3(); session.writeObject(email1); session.writeObject(email2); session.writeObject(email3); manager.registerObject(email1, "example1"); manager.registerObject(email2, "example2"); manager.registerObject(email3, "example3"); /***************************************/ Phone phone1 = Phone.example1(); Phone phone2 = Phone.example2(); Phone phone3 = Phone.example3(); session.writeObject(phone1); session.writeObject(phone2); session.writeObject(phone3); manager.registerObject(phone1, "example1"); manager.registerObject(phone2, "example2"); manager.registerObject(phone3, "example3"); /***************************************/ } }