/*******************************************************************************
* 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
******************************************************************************/
package org.eclipse.persistence.tools.workbench.test.mappingsmodel.automap;
import java.util.Hashtable;
import org.eclipse.persistence.tools.workbench.mappingsmodel.descriptor.MWDescriptor;
import org.eclipse.persistence.tools.workbench.mappingsmodel.project.MWProject;
public class EmployeeProjectVerifier extends AbstractAutomapVerifier
{
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_Address()
{
Hashtable table = new Hashtable();
table.put("city", new DirectMappingInfo("CITY"));
table.put("country", new DirectMappingInfo("COUNTRY"));
table.put("id", new DirectMappingInfo("ADDRESS_ID"));
// table.put("postalCode", new DirectMappingInfo("P_CODE"));
table.put("postalCode", new NullMappingInfo());
table.put("province", new DirectMappingInfo("PROVINCE"));
table.put("street", new DirectMappingInfo("STREET"));
return new TableDescriptorInfo(table, "ADDRESS");
}
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_Employee()
{
Hashtable table = new Hashtable();
table.put("firstName", new DirectMappingInfo("F_NAME"));
table.put("gender", new DirectMappingInfo("GENDER"));
// table.put("id", new DirectMappingInfo("EMP_ID"));
table.put("id", new NullMappingInfo());
table.put("lastName", new DirectMappingInfo("L_NAME"));
table.put("normalHours", new DirectMappingInfo(null));
table.put("salary", new DirectMappingInfo("SALARY", "SALARY"));
table.put("address", new OneToOneMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Address", "EMPLOYEE_ADDRESS"));
table.put("manager", new OneToOneMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Employee", "EMPLOYEE_EMPLOYEE"));
// table.put("managedEmployees", new OneToManyMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Employee", "EMPLOYEE_EMPLOYEE"));
table.put("managedEmployees", new DirectCollectionMappingInfo(null, null));
table.put("phoneNumbers", new OneToManyMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.PhoneNumber", "PHONE_EMPLOYEE"));
table.put("projects", new ManyToManyMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Project", "PROJ_EMP", "PROJ_EMP_EMPLOYEE", "PROJ_EMP_PROJECT"));
table.put("responsibilitiesList", new NullMappingInfo()); // TODO
table.put("period", new AggregateMappingInfo());
table.put("emailAddressMap", new NullMappingInfo());
return new TableDescriptorInfo(table, new String[] { "EMPLOYEE", "SALARY" });
}
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_Project()
{
Hashtable table = new Hashtable();
table.put("description", new DirectMappingInfo("DESCRIP"));
// table.put("id", new DirectMappingInfo("PROJ_ID"));
table.put("id", new NullMappingInfo());
// table.put("name", new DirectMappingInfo("PROJ_NAME"));
table.put("name", new NullMappingInfo());
table.put("version", new DirectMappingInfo("VERSION"));
table.put("teamLeader", new OneToOneMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Employee", "PROJECT_EMPLOYEE"));
return new TableDescriptorInfo(table, "PROJECT");
}
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_LargeProject()
{
Hashtable table = new Hashtable();
table.put("budget", new DirectMappingInfo("BUDGET"));
// table.put("budget", new NullMappingInfo());
// table.put("milestoneVersion", new DirectMappingInfo("MILESTONE"));
table.put("milestoneVersion", new NullMappingInfo());
return new TableDescriptorInfo(table, "LPROJECT");
// return new TableDescriptorInfo(table, "RESPONS"); // LPROJECT matches SmallProject better
}
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_PhoneNumber()
{
Hashtable table = new Hashtable();
table.put("areaCode", new DirectMappingInfo("AREA_CODE"));
table.put("number", new DirectMappingInfo("P_NUMBER"));
table.put("type", new DirectMappingInfo("TYPE"));
table.put("owner", new OneToOneMappingInfo("org.eclipse.persistence.tools.workbench.test.models.employee.Employee", "PHONE_EMPLOYEE"));
return new TableDescriptorInfo(table, "PHONE");
}
private DescriptorInfo org_eclipse_persistence_tools_workbench_test_models_employee_EmploymentPeriod()
{
Hashtable table = new Hashtable();
// table.put("endDate", new DirectMappingInfo("CITY"));
table.put("endDate", new NullMappingInfo());
// table.put("startDate", new DirectMappingInfo("COUNTRY"));
table.put("startDate", new NullMappingInfo());
return new AggregateDescriptorInfo(table);
}
/**
* Asks this <code>AutomapVerifier</code> to verify the execution of the
* automap on the state objects.
*
* @param project The root of the state object hierarchy
*/
public void verify(MWProject project)
{
MWDescriptor descriptor;
Hashtable descriptors = new Hashtable();
// test.oracle.models.employee.Address
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.Address");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_Address());
// test.oracle.models.employee.Employee
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.Employee");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_Employee());
// test.oracle.models.employee.EmploymentPeriod
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.EmploymentPeriod");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_EmploymentPeriod());
// test.oracle.models.employee.LargeProject
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.LargeProject");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_LargeProject());
// test.oracle.models.employee.PhoneNumber
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.PhoneNumber");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_PhoneNumber());
// test.oracle.models.employee.Project
descriptor = project.descriptorNamed("org.eclipse.persistence.tools.workbench.test.models.employee.Project");
descriptors.put(descriptor, org_eclipse_persistence_tools_workbench_test_models_employee_Project());
testDescriptors(descriptors);
}
}