blob: 5641ec53df69eeda7a722141cda5a6fb81463332 [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.transparentindirection;
import org.eclipse.persistence.sessions.*;
import org.eclipse.persistence.tools.schemaframework.*;
import org.eclipse.persistence.testing.framework.*;
/**
* This system just extends the transparent indirection system with a single class Dog,
* which uses custom indirect container (SalesRepContainer) for its 'owner' (SalesRep).
*/
public class CustomIndirectContainerSystem extends TestSystem {
public CustomIndirectContainerSystem() {
this.project = new CustomIndirectContainerProject();
}
@Override
public void addDescriptors(DatabaseSession session) {
session.addDescriptors(project);
}
@Override
public void createTables(DatabaseSession session) {
TableCreator tableCreator = new GeneratedIndirectContainerTableCreator();
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("DOG");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("ID");
field.setTypeName("INTEGER");
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(false);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("NAME");
field1.setTypeName("VARCHAR");
field1.setSize(50);
field1.setShouldAllowNull(true);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
tabledefinition.addField(field1);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("SREP_ID");
field.setTypeName("INTEGER");
field.setShouldAllowNull(false);
field.setIsPrimaryKey(false);
field.setUnique(false);
field.setIsIdentity(false);
tabledefinition.addField(field);
tableCreator.addTableDefinition(tabledefinition);
tableCreator.replaceTables(session);
}
public Dog dogExample1() {
return new Dog("Bart");
}
@Override
public void populate(DatabaseSession session) {
PopulationManager manager = PopulationManager.getDefaultManager();
SalesRep srep = salesRepExample1();
(session).writeObject(srep);
manager.registerObject(srep, srep.getKey());
Dog dog = dogExample1();
dog.setOwner(srep);
(session).writeObject(dog);
manager.registerObject(dog, dog.getName());
srep = salesRepExample2();
(session).writeObject(srep);
manager.registerObject(srep, srep.getKey());
}
public SalesRep salesRepExample1() {
return new SalesRep("Joey");
}
public SalesRep salesRepExample2() {
return new SalesRep("Jerry");
}
}