bug 346535 - fixed isVirtual calc and removed converter construction for virtual attributes
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java
index 8c8a09f..cc53451 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java
@@ -89,10 +89,10 @@
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		EclipseLinkCustomConverter virtualConverter = (EclipseLinkCustomConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkCustomConverter javaConverter = ((EclipseLinkCustomConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setConverterClass("bar");
-		assertEquals("bar", virtualConverter.getConverterClass());
+		
+		assertNull(virtualConverter);
 		assertEquals("bar", javaConverter.getConverterClass());
 		
 		//set metadata-complete, test virtual mapping	
@@ -156,10 +156,10 @@
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		EclipseLinkCustomConverter virtualConverter = (EclipseLinkCustomConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkCustomConverter javaConverter = ((EclipseLinkCustomConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setName("bar");
-		assertEquals("bar", virtualConverter.getName());
+		
+		assertNull(virtualConverter);
 		assertEquals("bar", javaConverter.getName());
 		
 		//set metadata-complete, test virtual mapping	
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java
index 2189d0c..e969d6e 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java
@@ -56,27 +56,8 @@
 			}
 		});
 	}
-
 	
-	private ICompilationUnit createTestEntityWithConvertAndObjectTypeConverterConversionValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLink.CONVERT, EclipseLink.OBJECT_TYPE_CONVERTER, EclipseLink.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(name=\"foo\", defaultObjectValue=\"bar\", conversionValues = @ConversionValue(dataValue=\"f\", objectValue=\"female\"))");
-			}
-		});
-	}
-
+	
 	public EclipseLinkOrmObjectTypeConverterTests(String name) {
 		super(name);
 	}
@@ -114,16 +95,17 @@
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkObjectTypeConverter javaConverter = ((EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setDataType("bar");
-		assertEquals("bar", ormConverter.getDataType());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getDataType());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getDataType());
 	}
@@ -175,23 +157,22 @@
 		assertEquals(null, ormConverter.getObjectType());
 		assertEquals(null, converterResource.getObjectType());
 		
-				
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkObjectTypeConverter javaConverter = ((EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setObjectType("bar");
-		assertEquals("bar", ormConverter.getObjectType());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getObjectType());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getObjectType());
 	}
@@ -245,24 +226,21 @@
 		
 
 		//remove the specified persistent attribute, test virtual mapping	
-				
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		EclipseLinkObjectTypeConverter virtualConverter = (EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkObjectTypeConverter javaConverter = ((EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setName("bar");
-		assertEquals("bar", virtualConverter.getName());
+		
+		assertNull(virtualConverter);
 		assertEquals("bar", javaConverter.getName());
 		
-		
 		//set metadata-complete, test virtual mapping
-		
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getName());
 	}
@@ -317,20 +295,20 @@
 				
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkObjectTypeConverter javaConverter = ((EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setDefaultObjectValue("bar");
-		assertEquals("bar", ormConverter.getDefaultObjectValue());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getDefaultObjectValue());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getDefaultObjectValue());
 	}
@@ -453,24 +431,19 @@
 		assertEquals(1, javaConverter.conversionValuesSize());
 		
 		//remove orm attribute mapping, verify virtual mapping has conversion values from java
-		
 		ormPersistentAttribute.convertToVirtual();
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkObjectTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
 		
-		assertEquals(1, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("baz", contextConversionValue.getDataValue());
-		assertEquals(0, converterResource.getConversionValues().size());
+		assertNull(ormConverter);
 		assertEquals(1, javaConverter.conversionValuesSize());
 		
 		//set metadata-complete to true, verify virtual mapping ignores the conversion values from java
-		
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 	}
 	
@@ -553,17 +526,4 @@
 		assertEquals(0, ormConverter.conversionValuesSize());
 		assertEquals(0, converterResource.getConversionValues().size());
 	}
-
-	public void testInitializeConversionValues() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverterConversionValue();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmReadOnlyPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		BasicMapping ormBasicMapping = (BasicMapping) ormPersistentAttribute.getMapping(); 
-		EclipseLinkConvert eclipseLinkConvert = (EclipseLinkConvert) ormBasicMapping.getConverter();
-		EclipseLinkObjectTypeConverter converter = (EclipseLinkObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals(1, converter.conversionValuesSize());
-		assertEquals("f", converter.conversionValues().next().getDataValue());
-		assertEquals("female", converter.conversionValues().next().getObjectValue());
-	}
 }
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java
index f6a3cfc..1ab2217 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java
@@ -82,24 +82,23 @@
 		converterResource.setConverter(null);
 		assertEquals(null, ormConverter.getConverterClass());
 		assertEquals(null, converterResource.getConverter());
-		
 				
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkStructConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkStructConverter javaConverter = ((EclipseLinkStructConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setConverterClass("bar");
-		assertEquals("bar", ormConverter.getConverterClass());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getConverterClass());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getConverterClass());
 	}
@@ -151,26 +150,22 @@
 		assertEquals(null, ormConverter.getName());
 		assertEquals(null, converterResource.getName());
 		
-
 		//remove the specified persistent attribute, test virtual mapping	
-				
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		EclipseLinkStructConverter virtualConverter = (EclipseLinkStructConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkStructConverter javaConverter = ((EclipseLinkStructConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setName("bar");
-		assertEquals("bar", virtualConverter.getName());
+		
+		assertNull(virtualConverter);
 		assertEquals("bar", javaConverter.getName());
 		
-		
 		//set metadata-complete, test virtual mapping
-		
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.virtualAttributes().next();
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getName());
 	}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java
index e08e36a..934ecdd 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java
@@ -82,24 +82,23 @@
 		converterResource.setDataType(null);
 		assertEquals(null, ormConverter.getDataType());
 		assertEquals(null, converterResource.getDataType());
-		
 				
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkTypeConverter javaConverter = ((EclipseLinkTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setDataType("bar");
-		assertEquals("bar", ormConverter.getDataType());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getDataType());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getDataType());
 	}
@@ -151,23 +150,22 @@
 		assertEquals(null, ormConverter.getObjectType());
 		assertEquals(null, converterResource.getObjectType());
 		
-				
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		ormConverter = (EclipseLinkTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkTypeConverter javaConverter = ((EclipseLinkTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setObjectType("bar");
-		assertEquals("bar", ormConverter.getObjectType());
+		
+		assertNull(ormConverter);
 		assertEquals("bar", javaConverter.getObjectType());
 		
 		//set metadata-complete, test virtual mapping	
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getObjectType());
 	}
@@ -219,25 +217,22 @@
 		assertEquals(null, ormConverter.getName());
 		assertEquals(null, converterResource.getName());
 		
-
 		//remove the specified persistent attribute, test virtual mapping	
 		ormPersistentAttribute.convertToVirtual();
-		
 		OrmReadOnlyPersistentAttribute ormPersistentAttribute2 = ormPersistentType.getAttributeNamed("id");
 		BasicMapping virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
 		EclipseLinkTypeConverter virtualConverter = (EclipseLinkTypeConverter) ((EclipseLinkConvert) virtualBasicMapping.getConverter()).getConverter();
-		
 		EclipseLinkTypeConverter javaConverter = ((EclipseLinkTypeConverter) ((EclipseLinkConvert) javaBasicMapping.getConverter()).getConverter());
 		javaConverter.setName("bar");
-		assertEquals("bar", virtualConverter.getName());
+		
+		assertNull(virtualConverter);
 		assertEquals("bar", javaConverter.getName());
 		
-		
 		//set metadata-complete, test virtual mapping
-		
 		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
 		ormPersistentAttribute2 = ormPersistentType.virtualAttributes().next();
 		virtualBasicMapping = (BasicMapping) ormPersistentAttribute2.getMapping();
+		
 		assertNull(virtualBasicMapping.getConverter().getType());
 		assertEquals("bar", javaConverter.getName());
 	}