/**
* <copyright>
*
* Copyright (c) 2005, 2006, 2007, 2008 Springsite BV (The Netherlands) 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:
* Douglas Bitting
* </copyright>
*
* $Id: HbAnnotationModelBuilder.java,v 1.3 2008/02/28 07:07:43 mtaal Exp $
*/
package org.eclipse.emf.teneo.hibernate.annotations;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EModelElement;
import org.eclipse.emf.ecore.ENamedElement;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.teneo.annotations.mapper.BasicPamodelBuilder;
import org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEModelElement;
import org.eclipse.emf.teneo.hibernate.hbmodel.HbmodelFactory;
/**
* This class create the Hibernate-model versions of the various PaAnnotatedE* objects.
*/
public class HbAnnotationModelBuilder extends BasicPamodelBuilder {
/** Use hb annotation types */
@Override
protected PAnnotatedEModelElement doCreate(EModelElement eModelElement) throws AssertionError {
final EClass eModelElementEClass = eModelElement.eClass();
PAnnotatedEModelElement paElement;
switch (eModelElementEClass.getClassifierID()) {
case EcorePackage.EATTRIBUTE:
paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEAttribute();
break;
case EcorePackage.EREFERENCE:
paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEReference();
break;
case EcorePackage.ECLASS:
paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEClass();
break;
case EcorePackage.EPACKAGE:
paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEPackage();
break;
case EcorePackage.EENUM:
case EcorePackage.EDATA_TYPE:
paElement = HbmodelFactory.eINSTANCE.createHbAnnotatedEDataType();
break;
default:
throw new AssertionError("Trying to build HbAnnotatedEModelElement for a " + eModelElementEClass);
}
paElement.setModelElement((ENamedElement) eModelElement);
return paElement;
}
}