/******************************************************************************* | |
* Copyright (c) 2011, 2013 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: | |
* tware - test for bug 262157 | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.tests.unitofwork; | |
import java.math.BigDecimal; | |
import org.eclipse.persistence.descriptors.RelationalDescriptor; | |
import org.eclipse.persistence.mappings.DirectToFieldMapping; | |
import org.eclipse.persistence.tools.schemaframework.TableDefinition; | |
public class ConcurrentProject { | |
protected BigDecimal id; | |
protected String name; | |
public static int RUNNING_TEST; | |
public static final int NONE = Integer.MIN_VALUE; | |
public static int READ_WITH_UOW_LOCKS_TESTS = 1; | |
public BigDecimal getId() { | |
return id; | |
} | |
public void setId(BigDecimal id) { | |
this.id = id; | |
} | |
public String getName() { | |
return name; | |
} | |
public void setName(String name) { | |
if (ConcurrentProject.RUNNING_TEST == ConcurrentProject.READ_WITH_UOW_LOCKS_TESTS) { | |
try{ | |
Thread.sleep(5000); // let the read go | |
} catch (InterruptedException ex) {} | |
} | |
this.name = name; | |
} | |
public static RelationalDescriptor descriptor() { | |
RelationalDescriptor descriptor = new RelationalDescriptor(); | |
/* First define the class, table and descriptor properties. */ | |
descriptor.setJavaClass(ConcurrentProject.class); | |
descriptor.setTableName("CONCURRENT_PROJECT"); | |
descriptor.setPrimaryKeyFieldName("ID"); | |
descriptor.setSequenceNumberName("SEQ"); | |
descriptor.setSequenceNumberFieldName("ID"); | |
/* Next define the attribute mappings. */ | |
descriptor.addDirectMapping("id", "ID"); | |
DirectToFieldMapping nameMapping = new DirectToFieldMapping(); | |
nameMapping.setAttributeName("name"); | |
nameMapping.setFieldName("NAME"); | |
nameMapping.setGetMethodName("getName"); | |
nameMapping.setSetMethodName("setName"); | |
descriptor.addMapping(nameMapping); | |
// Inheritance Properties. | |
descriptor.getInheritancePolicy().setClassIndicatorFieldName("CONCURRENT_PROJECT.DISCRIM"); | |
descriptor.getInheritancePolicy().addClassIndicator(ConcurrentProject.class, "P"); | |
descriptor.getInheritancePolicy().addClassIndicator(ConcurrentLargeProject.class, "L"); | |
return descriptor; | |
} | |
/** | |
* Return a platform independant definition of the database table. | |
*/ | |
public static TableDefinition tableDefinition() { | |
TableDefinition definition = new TableDefinition(); | |
definition.setName("CONCURRENT_PROJECT"); | |
definition.addIdentityField("ID", java.math.BigDecimal.class, 15); | |
definition.addField("NAME", java.lang.String.class, 30); | |
definition.addField("DISCRIM", java.lang.String.class, 1); | |
definition.addField("LOCATION_ID", java.math.BigDecimal.class, 15); | |
return definition; | |
} | |
} |