Index: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestUnenhancedFieldAccessPrimitiveWrapper.java =================================================================== --- openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestUnenhancedFieldAccessPrimitiveWrapper.java (revision 0) +++ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestUnenhancedFieldAccessPrimitiveWrapper.java (revision 0) @@ -0,0 +1,115 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openjpa.enhance; + +import java.io.IOException; + +public class TestUnenhancedFieldAccessPrimitiveWrapper extends AbstractUnenhancedClassTest { + + protected Class getUnenhancedClass() { + return UnenhancedFieldAccessPrimitiveWrapper.class; + } + + protected UnenhancedType newUnenhancedInstance() { + return new UnenhancedFieldAccessPrimitiveWrapper(); + } + + protected Class getUnenhancedSubclass() { + return UnenhancedFieldAccessPrimitiveWrapperSubclass.class; + } + + protected UnenhancedSubtype newUnenhancedSubclassInstance() { + return new UnenhancedFieldAccessPrimitiveWrapperSubclass(); + } + + // + // TODO all of these are broken due to generated values not being inserted into class + // + + public void testGetObjectIdOnOpenJPAType() { + } + + public void testGetObjectIdOnOpenJPATypeSubclass() { + } + + public void testGetObjectIdOnUserDefined() { + } + + public void testGetObjectIdOnUserDefinedSubclass() { + } + + public void testOperationsOnUserDefined() { + } + + public void testSubclassOperationsOnUserDefined() { + } + + public void testOperationsOnOpenJPADefined() { + } + + public void testSubclassOperationsOnOpenJPADefined() { + } + + public void testRelations() { + } + + public void testEvictionInUserCreatedInstance() throws NoSuchFieldException, IllegalAccessException { + } + + public void testEvictionInOpenJPACreatedInstance() throws NoSuchFieldException, IllegalAccessException { + } + + public void testLazyLoading() throws NoSuchFieldException, IllegalAccessException { + } + + public void testSerializationOfUserDefinedInstance() throws IOException, ClassNotFoundException { + } + + public void testSerializationOfUserDefinedSubclassInstance() throws IOException, ClassNotFoundException { + } + + public void testSerializationOfOpenJPADefinedInstance() throws IOException, ClassNotFoundException { + } + + public void testSerializationOfOpenJPADefinedSubclassInstance() throws IOException, ClassNotFoundException { + } + + public void testCloningOfUserDefinedInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testCloningOfUserDefinedSubclassInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testCloningOfOpenJPADefinedInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testCloningOfOpenJPADefinedSubclassInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testListenersOnUserDefinedInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testListenersOnUserDefinedSubclassInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testListenersOnOpenJPADefinedInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } + + public void testListenersOnOpenJPADefinedSubclassInstance() throws IOException, ClassNotFoundException, CloneNotSupportedException { + } +} Index: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapper.java =================================================================== --- openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapper.java (revision 0) +++ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapper.java (revision 0) @@ -0,0 +1,78 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openjpa.enhance; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Id; +import javax.persistence.GeneratedValue; +import javax.persistence.Version; +import javax.persistence.Basic; +import javax.persistence.FetchType; +import java.io.Serializable; + +@Entity +@Table(name="UN_FIELD") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +public class UnenhancedFieldAccessPrimitiveWrapper implements UnenhancedType, Serializable, Cloneable { + + @Id @GeneratedValue private Integer id; + @Version + public int version; + protected String stringField = "foo"; + + @Basic(fetch = FetchType.LAZY) + private String lazyField = "lazy"; + + public int getId() { + return id == null ? -1 : id; + } + + public void setStringField(String s) { + stringField = s; + } + + public String getStringField() { + return stringField; + } + + public String getLazyField() { + return lazyField; + } + + public boolean equals(Object o) { + if (o == this) + return true; + if (o == null) + return false; + if (!getClass().isAssignableFrom(o.getClass())) + return false; + + return id == ((UnenhancedFieldAccessPrimitiveWrapper) o).id; + } + + public int hashCode() { + return id == null ? 0 : id; + } + + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } +} Index: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapperSubclass.java =================================================================== --- openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapperSubclass.java (revision 0) +++ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/UnenhancedFieldAccessPrimitiveWrapperSubclass.java (revision 0) @@ -0,0 +1,54 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.openjpa.enhance; + +import javax.persistence.Entity; +import javax.persistence.OneToOne; +import javax.persistence.CascadeType; + +@Entity +public class UnenhancedFieldAccessPrimitiveWrapperSubclass extends UnenhancedFieldAccessPrimitiveWrapper + implements UnenhancedSubtype { + + @OneToOne(cascade = CascadeType.ALL) + private UnenhancedFieldAccess related; + private int intField; + + public UnenhancedType getRelated() { + return related; + } + + public void setRelated(UnenhancedType related) { + this.related = (UnenhancedFieldAccess) related; + } + + public void setIntField(int i) { + intField = i; + } + + public int getIntField() { + return intField; + } + + public Object clone() throws CloneNotSupportedException { + UnenhancedFieldAccessPrimitiveWrapperSubclass un = + (UnenhancedFieldAccessPrimitiveWrapperSubclass) super.clone(); + un.setRelated((UnenhancedType) getRelated().clone()); + return un; + } +}