diff options
Diffstat (limited to 'hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java')
-rwxr-xr-x | hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java new file mode 100755 index 000000000..81ad1dbca --- /dev/null +++ b/hibernate/org.eclipse.emf.teneo.hibernate.mapper/src/org/eclipse/emf/teneo/hibernate/annotations/HbAnnotationModelBuilder.java @@ -0,0 +1,59 @@ +/** + * <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; + } +} |