/******************************************************************************* * Copyright (c) 2008, 2009 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.eclipselink.core.internal.context.orm; import org.eclipse.core.runtime.content.IContentType; import org.eclipse.jpt.core.JpaFactory; import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.java.JavaAttributeMapping; import org.eclipse.jpt.core.context.java.JavaManyToManyMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory; import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany; import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory; public class EclipseLink1_1OrmManyToManyMappingProvider implements OrmAttributeMappingProvider { // singleton private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmManyToManyMappingProvider(); /** * Return the singleton. */ public static OrmAttributeMappingProvider instance() { return INSTANCE; } /** * Ensure single instance. */ private EclipseLink1_1OrmManyToManyMappingProvider() { super(); } public IContentType getContentType() { return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE; } public String getKey() { return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY; } public XmlAttributeMapping buildResourceMapping() { return EclipseLink1_1OrmFactory.eINSTANCE.createXmlManyToManyImpl(); } public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) { return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmManyToManyMapping(parent, (XmlManyToMany) resourceMapping); } public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) { return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlManyToMany(ormTypeMapping, (JavaManyToManyMapping) javaAttributeMapping); } }