| /* |
| * Copyright (c) 1998, 2020 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: |
| // ailitchev - jpa 2.0 element collections support |
| package org.eclipse.persistence.testing.models.aggregate; |
| |
| import java.io.*; |
| import java.util.*; |
| |
| import org.eclipse.persistence.tools.schemaframework.FieldDefinition; |
| import org.eclipse.persistence.tools.schemaframework.TableDefinition; |
| |
| public class Builder implements Serializable { |
| private String firstName; |
| private String lastName; |
| private java.math.BigDecimal id; |
| private List houses; |
| private List customers; |
| private List vehicles; |
| |
| public Builder() { |
| super(); |
| houses = new ArrayList(2); |
| customers = new ArrayList(2); |
| vehicles = new ArrayList(2); |
| } |
| |
| public void addCustomer(Customer customer) { |
| getCustomers().add(customer); |
| } |
| |
| public void addHouse(House house) { |
| getHouses().add(house); |
| } |
| |
| public void addVehicle(Vehicle vehicle) { |
| getVehicles().add(vehicle); |
| } |
| |
| public static Builder example1() { |
| Builder example1 = new Builder(); |
| |
| example1.setFirstName("Micheal"); |
| example1.setLastName("Jordan"); |
| |
| example1.addCustomer(Customer.example1()); |
| example1.addCustomer(Customer.example2()); |
| |
| example1.addHouse(SingleHouse.example1()); |
| example1.addHouse(TownHouse.example3()); |
| |
| example1.addVehicle(Car.example1()); |
| example1.addVehicle(Car.example2()); |
| example1.addVehicle(Car.example3()); |
| example1.addVehicle(Bicycle.example1()); |
| example1.addVehicle(Bicycle.example2()); |
| |
| return example1; |
| } |
| |
| public List getCustomers() { |
| return customers; |
| } |
| |
| public String getFirstName() { |
| return firstName; |
| } |
| |
| public List getHouses() { |
| return houses; |
| } |
| |
| public java.math.BigDecimal getId() { |
| return id; |
| } |
| |
| public String getLastName() { |
| return lastName; |
| } |
| |
| public List getVehicles() { |
| return vehicles; |
| } |
| |
| public void removeCustomer(Customer customer) { |
| getCustomers().remove(customer); |
| } |
| |
| public void removeHouse(House house) { |
| getHouses().remove(house); |
| } |
| |
| public void removeVehicle(Vehicle vehicle) { |
| getVehicles().remove(vehicle); |
| } |
| |
| public void setCustomers(List customers) { |
| this.customers = customers; |
| } |
| |
| public void setFirstName(String firstName) { |
| this.firstName = firstName; |
| } |
| |
| public void setHouses(List houses) { |
| this.houses = houses; |
| } |
| |
| public void setId(java.math.BigDecimal id) { |
| this.id = id; |
| } |
| |
| public void setLastName(String lastName) { |
| this.lastName = lastName; |
| } |
| |
| public void setVehicles(List vehicles) { |
| this.vehicles = vehicles; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition tableDefinition() { |
| TableDefinition definition = new TableDefinition(); |
| |
| definition.setName("BUILDER"); |
| |
| definition.addIdentityField("BUILDER_ID", java.math.BigDecimal.class, 15); |
| definition.addField("FNAME", String.class, 30); |
| definition.addField("LNAME", String.class, 30); |
| definition.addField("VERSION", java.math.BigDecimal.class, 15); |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition houseTableDefinition() { |
| TableDefinition definition = House.tableDefinition(); |
| |
| definition.setName("BUILDER_HOUSE"); |
| |
| for(int i=0; i < definition.getFields().size(); i++) { |
| FieldDefinition field = definition.getFields().get(i); |
| if(field.getName().equals("AGENT_ID")) { |
| field.setName("BUILDER_ID"); |
| break; |
| } |
| } |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition singleHouseTableDefinition() { |
| TableDefinition definition = SingleHouse.tableDefinition(); |
| |
| definition.setName("BUILDER_SINGLE_HOUSE"); |
| |
| for(int i=0; i < definition.getFields().size(); i++) { |
| FieldDefinition field = definition.getFields().get(i); |
| if(field.getName().equals("AGENT_ID")) { |
| field.setName("BUILDER_ID"); |
| break; |
| } |
| } |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition sellingPointTableDefinition() { |
| TableDefinition definition = SellingPoint.tableDefinition(); |
| |
| definition.setName("BUILDER_SELLING_POINT"); |
| |
| for(int i=0; i < definition.getFields().size(); i++) { |
| FieldDefinition field = definition.getFields().get(i); |
| if(field.getName().equals("AGENT_ID")) { |
| field.setName("BUILDER_ID"); |
| break; |
| } |
| } |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition customerTableDefinition() { |
| TableDefinition definition = Customer.tableDefinition(); |
| |
| definition.setName("BUILDER_CUSTOMER"); |
| |
| for(int i=0; i < definition.getFields().size(); i++) { |
| FieldDefinition field = definition.getFields().get(i); |
| if(field.getName().equals("AGENT_ID")) { |
| field.setName("BUILDER_ID"); |
| break; |
| } |
| } |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition dependantTableDefinition() { |
| TableDefinition definition = Dependant.tableDefinition(); |
| |
| definition.setName("BUILDER_DEPENDANT"); |
| |
| return definition; |
| } |
| |
| /** |
| * Return a platform independent definition of the database table. |
| */ |
| public static TableDefinition vehicleTableDefinition() { |
| TableDefinition definition = Vehicle.tableDefinition(); |
| |
| definition.setName("BUILDER_VEHICLE"); |
| |
| for(int i=0; i < definition.getFields().size(); i++) { |
| FieldDefinition field = definition.getFields().get(i); |
| if(field.getName().equals("ID")) { |
| field.setName("BUILDER_ID"); |
| field.setIsPrimaryKey(false); |
| break; |
| } |
| } |
| |
| return definition; |
| } |
| } |