blob: 50752a89be6951d7a9f597ec53537dd6448f2855 [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.inheritance;
import java.io.*;
import java.util.Enumeration;
import org.eclipse.persistence.descriptors.*;
import org.eclipse.persistence.mappings.*;
import org.eclipse.persistence.tools.schemaframework.*;
public class Computer implements Serializable {
public int id;
public int memory;
public int processorSpeed;
public String processorMake;
public String manufacturer;
public static void addToDescriptor(ClassDescriptor descriptor) {
// In order for this domain model to work with all of our tests, it must be set
// up so that the transformation mapping below is not added twice.
// As a result, we check for the mapping before adding it.
// The reason this mapping is not added in the project is that some Mapping Workbench
// tests rely on the ammendment method.
Enumeration<DatabaseMapping> mappings = descriptor.getMappings().elements();
while (mappings.hasMoreElements()) {
DatabaseMapping mapping = mappings.nextElement();
if (mapping.isTransformationMapping()) {
Object ctype = ((TransformationMapping)mapping).getFieldNameToMethodNames().get("CTYPE");
if (ctype != null) {
return;
}
;
}
}
TransformationMapping typeMapping = new TransformationMapping();
typeMapping.addFieldTransformation("CTYPE", "getComputerType");
descriptor.addMapping(typeMapping);
}
public static Mac example1() {
Mac mac = new Mac();
mac.processorSpeed = 166;
mac.memory = 64;
mac.processorMake = "Motorolla 6046";
mac.manufacturer = "Apple";
return mac;
}
public static IBMPC example2() {
IBMPC pc = new IBMPC();
pc.processorSpeed = 133;
pc.memory = 32;
pc.processorMake = "Intel Pentium";
pc.manufacturer = "Dell";
pc.isClone = "true";
return pc;
}
public static IBMPC example3() {
IBMPC pc = new IBMPC();
pc.processorSpeed = 450;
pc.memory = 128;
pc.processorMake = "Intel Pentium II";
pc.manufacturer = "Compact";
pc.isClone = "true";
return pc;
}
public static IBMPC example3a() {
IBMPC pc = new IBMPC();
pc.processorSpeed = 450;
pc.memory = 128;
pc.processorMake = "Intel Pentium II";
pc.manufacturer = "IBM";
pc.isClone = "false";
return pc;
}
public static PC example4() {
PC pc = new PC();
pc.processorSpeed = 33;
pc.memory = 8;
pc.processorMake = "Motorolla 3000";
pc.manufacturer = "Apple";
return pc;
}
public static Mainframe example5() {
Mainframe mainframe = new Mainframe();
mainframe.processorSpeed = 5000;
mainframe.memory = 1600;
mainframe.processorMake = "R6000";
mainframe.manufacturer = "IBM";
mainframe.numberOfProcessors = 12;
return mainframe;
}
public static Class getClassFromRow(org.eclipse.persistence.sessions.Record row) {
if (row.get("CTYPE").equals("PC")) {
if (row.get("PCTYPE").equals("IBM")) {
return org.eclipse.persistence.testing.models.inheritance.IBMPC.class;
} else if (row.get("PCTYPE").equals("MAC")) {
return org.eclipse.persistence.testing.models.inheritance.Mac.class;
} else {
return PC.class;
}
} else if (row.get("CTYPE").equals("MF")) {
return org.eclipse.persistence.testing.models.inheritance.Mainframe.class;
} else {
return org.eclipse.persistence.testing.models.inheritance.Computer.class;
}
}
public String getComputerType() {
return "COM";
}
/**
* Return the view for Oracle.
*/
public static ViewDefinition oracleView() {
ViewDefinition definition = new ViewDefinition();
definition.setName("AllComputers");
definition.setSelectClause("Select C.*, M.*" + " from INH_COMP C, INH_MF M" + " where C.id = M.MF_ID (+)");
return definition;
}
/**
* Return the view for Sybase.
*/
public static ViewDefinition sybaseView() {
ViewDefinition definition = new ViewDefinition();
definition.setName("AllComputers");
definition.setSelectClause("Select C.*, M.*" + " from INH_COMP C, INH_MF M" + " where C.ID *= M.MF_ID");
return definition;
}
/**
* Return the view for MySQL. It is supported as of MySQL 5.0.1
*/
public static ViewDefinition mySQLView() {
ViewDefinition definition = new ViewDefinition();
definition.setName("AllComputers");
definition.setSelectClause("Select C.*, M.*" + " from INH_COMP C left join INH_MF M on C.ID = M.MF_ID");
return definition;
}
}