/*************************************************************************** * Copyright (c) 2004 - 2008 Springsite B.V. and others * 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: * Martin Taal - initial API and implementation **************************************************************************/ package org.eclipse.emf.teneo.hibernate.cdo; import java.util.Properties; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.teneo.PersistenceOptions; import org.eclipse.emf.teneo.extension.ExtensionManager; import org.eclipse.emf.teneo.extension.ExtensionManagerFactory; import org.eclipse.emf.teneo.extension.ExtensionUtil; import org.eclipse.emf.teneo.hibernate.mapper.MappingContext; import org.eclipse.emf.teneo.hibernate.mapper.MappingUtil; /** * Offers convenience methods for generating a cdo enabled hibernate mapping. * * @author <a href="mtaal@elver.org">Martin Taal</a> */ public class CDOHelper { public static final String GENERATE_FOR_CDO = "generate_for_cdo"; private static CDOHelper instance = new CDOHelper(); /** * @return the instance */ public static CDOHelper getInstance() { return instance; } /** * @param instance * the instance to set */ public static void setInstance(CDOHelper instance) { CDOHelper.instance = instance; } public void registerCDOExtensions(ExtensionManager extensionManager) { MappingUtil.registerHbExtensions(extensionManager); extensionManager.registerExtension(ExtensionUtil.createExtension(MappingContext.class, CDOMappingContext.class, false)); } /** * Separate utility method, generates a hibernate mapping for a set of epackages and options. * The hibernate.hbm.xml is returned as a string. The mapping is not registered or used in any * other way by Elver. */ public String generateMapping(EPackage[] epackages, Properties props) { return generateMapping(epackages, props, ExtensionManagerFactory.getInstance().create()); } /** * Separate utility method, generates a hibernate mapping for a set of epackages and options. * The hibernate.hbm.xml is returned as a string. The mapping is not registered or used in any * other way by Elver. */ public String generateMapping(EPackage[] epackages, Properties props, ExtensionManager extensionManager) { props.put(PersistenceOptions.ALSO_MAP_AS_CLASS, "false"); CDOHelper.getInstance().registerCDOExtensions(extensionManager); return MappingUtil.generateMapping(epackages, props, extensionManager); } }