/******************************************************************************* | |
* Copyright (c) 2018 Oracle. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0, which accompanies this distribution | |
* and is available at http://www.eclipse.org/legal/epl-v10.html. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation | |
******************************************************************************/ | |
package org.eclipse.jpt.jpa.core.internal.jpa2_2.context.orm; | |
import java.util.ArrayList; | |
import org.eclipse.emf.ecore.EFactory; | |
import org.eclipse.jpt.common.core.JptResourceType; | |
import org.eclipse.jpt.common.utility.internal.collection.CollectionTools; | |
import org.eclipse.jpt.jpa.core.context.orm.NullOrmAttributeMappingDefinition; | |
import org.eclipse.jpt.jpa.core.context.orm.OrmAttributeMappingDefinition; | |
import org.eclipse.jpt.jpa.core.context.orm.OrmManagedTypeDefinition; | |
import org.eclipse.jpt.jpa.core.context.orm.OrmXmlContextModelFactory; | |
import org.eclipse.jpt.jpa.core.context.orm.OrmXmlDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.AbstractOrmXmlDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmBasicMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmEmbeddedIdMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmEmbeddedMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmIdMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmManyToManyMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmManyToOneMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmOneToManyMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmOneToOneMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmPersistentTypeDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmTransientMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.context.orm.OrmVersionMappingDefinition; | |
import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.OrmElementCollectionMappingDefinition2_0; | |
import org.eclipse.jpt.jpa.core.internal.jpa2_1.GenericJpaPlatformProvider2_1; | |
import org.eclipse.jpt.jpa.core.internal.jpa2_1.context.orm.GenericOrmXmlContextModelFactory2_1; | |
import org.eclipse.jpt.jpa.core.internal.jpa2_1.context.orm.OrmConverterTypeDefinition2_1; | |
import org.eclipse.jpt.jpa.core.resource.orm.OrmFactory; | |
import org.eclipse.jpt.jpa.core.resource.orm.XmlEntityMappings; | |
import org.eclipse.jpt.jpa.core.resource.persistence.v2_2.JPA2_2; | |
public class GenericOrmXmlDefinition2_2 | |
extends AbstractOrmXmlDefinition | |
{ | |
// singleton | |
private static final OrmXmlDefinition INSTANCE = new GenericOrmXmlDefinition2_2(); | |
/** | |
* Return the singleton | |
*/ | |
public static OrmXmlDefinition instance() { | |
return INSTANCE; | |
} | |
/** | |
* Enforce singleton usage | |
*/ | |
private GenericOrmXmlDefinition2_2() { | |
super(); | |
} | |
public JptResourceType getResourceType() { | |
return this.getResourceType(XmlEntityMappings.CONTENT_TYPE, JPA2_2.SCHEMA_VERSION); | |
} | |
public EFactory getResourceModelFactory() { | |
return OrmFactory.eINSTANCE; | |
} | |
@Override | |
protected OrmXmlContextModelFactory buildContextModelFactory() { | |
return new GenericOrmXmlContextModelFactory2_1(); | |
} | |
// ********* Managed Types ********* | |
@Override | |
protected void addManagedTypeDefinitionsTo(ArrayList<OrmManagedTypeDefinition> definitions) { | |
CollectionTools.addAll(definitions, MANAGED_TYPE_DEFINITIONS_2_2); | |
} | |
protected static final OrmManagedTypeDefinition[] MANAGED_TYPE_DEFINITIONS_2_2 = new OrmManagedTypeDefinition[] { | |
OrmPersistentTypeDefinition.instance(), | |
OrmConverterTypeDefinition2_1.instance(), | |
}; | |
@Override | |
protected void addAttributeMappingDefinitionsTo(ArrayList<OrmAttributeMappingDefinition> definitions) { | |
CollectionTools.addAll(definitions, ATTRIBUTE_MAPPING_DEFINITIONS); | |
} | |
/** | |
* Order should not matter here; but we'll use the same order as for Java. | |
* @see GenericJpaPlatformProvider2_1 | |
*/ | |
protected static final OrmAttributeMappingDefinition[] ATTRIBUTE_MAPPING_DEFINITIONS = new OrmAttributeMappingDefinition[] { | |
OrmTransientMappingDefinition.instance(), | |
OrmElementCollectionMappingDefinition2_0.instance(), | |
OrmIdMappingDefinition.instance(), | |
OrmVersionMappingDefinition.instance(), | |
OrmBasicMappingDefinition.instance(), | |
OrmEmbeddedMappingDefinition.instance(), | |
OrmEmbeddedIdMappingDefinition.instance(), | |
OrmManyToManyMappingDefinition.instance(), | |
OrmManyToOneMappingDefinition.instance(), | |
OrmOneToManyMappingDefinition.instance(), | |
OrmOneToOneMappingDefinition.instance(), | |
NullOrmAttributeMappingDefinition.instance() | |
}; | |
} |