/*******************************************************************************
* Copyright (c) 2008 Olivier Moises
*
* 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:
* Olivier Moises- initial API and implementation
*******************************************************************************/
package org.eclipse.wazaabi.locationpaths.tests;
import java.io.IOException;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
public abstract class AbstractTest {
private static EPackage rootEPackage = null;
public static final String ROOT_EPACKAGE_NAME = "rootEPackage"; //$NON-NLS-1$
public static final String ROOT_EPACKAGE_PREFIX = "rootP"; //$NON-NLS-1$
public static final String ROOT_EPACKAGE_NSURI = "urn:root-epackage"; //$NON-NLS-1$
public static final String SUB_EPACKAGE1_NAME = "subEPackage1"; //$NON-NLS-1$
public static final String SUB_EPACKAGE1_PREFIX = "sub1"; //$NON-NLS-1$
public static final String SUB_EPACKAGE1_NSURI = "urn:sub-epackage"; //$NON-NLS-1$
public static final String ECLASS1_NAME = "eClass1"; //$NON-NLS-1$
public static final String ECLASS2_NAME = "eClass2"; //$NON-NLS-1$
public static final String SUB_ECLASS1_NAME = "SubEClass1"; //$NON-NLS-1$
public static final String SUB_ECLASS1_ATTR1_NAME = "SubEClassAttr1"; //$NON-NLS-1$
public static final String SUB_ECLASS1_ATTR2_NAME = "SubEClassAttr1"; //$NON-NLS-1$
/**
* This method creates a model using EMF reflection. The root of this model
* is an EPackage.
*
* @return
*/
protected static EPackage getTestEPackage() {
if (rootEPackage == null) {
rootEPackage = EcoreFactory.eINSTANCE.createEPackage();
rootEPackage.setName(ROOT_EPACKAGE_NAME);
rootEPackage.setNsURI(ROOT_EPACKAGE_PREFIX);
rootEPackage.setNsURI(ROOT_EPACKAGE_NSURI);
EClass eClass1 = EcoreFactory.eINSTANCE.createEClass();
eClass1.setName(ECLASS1_NAME);
rootEPackage.getEClassifiers().add(eClass1);
EPackage subEPackage1 = EcoreFactory.eINSTANCE.createEPackage();
subEPackage1.setName(SUB_EPACKAGE1_NAME);
subEPackage1.setNsURI(SUB_EPACKAGE1_PREFIX);
subEPackage1.setNsURI(SUB_EPACKAGE1_NSURI);
rootEPackage.getESubpackages().add(subEPackage1);
EClass subEClass1 = EcoreFactory.eINSTANCE.createEClass();
subEClass1.setName(SUB_ECLASS1_NAME);
subEPackage1.getEClassifiers().add(subEClass1);
EAttribute attr1 = EcoreFactory.eINSTANCE.createEAttribute();
attr1.setName(SUB_ECLASS1_ATTR1_NAME);
attr1.setEType(EcorePackage.Literals.ESTRING);
subEClass1.getEStructuralFeatures().add(attr1);
EAttribute attr2 = EcoreFactory.eINSTANCE.createEAttribute();
attr2.setName(SUB_ECLASS1_ATTR2_NAME);
attr2.setEType(EcorePackage.Literals.EINT);
subEClass1.getEStructuralFeatures().add(attr2);
EClass eClass2 = EcoreFactory.eINSTANCE.createEClass();
eClass2.setName(ECLASS2_NAME);
rootEPackage.getEClassifiers().add(eClass2);
EPackage.Registry.INSTANCE.put(ROOT_EPACKAGE_NSURI, rootEPackage);
EPackage.Registry.INSTANCE.put(SUB_EPACKAGE1_NSURI, subEPackage1);
Resource r = new XMIResourceImpl();
r.getContents().add(rootEPackage);
try {
System.out
.println("--- rootEPackage-----------------------------");
r.save(System.out, null);
System.out
.println("---------------------------------------------");
} catch (IOException e) {
e.printStackTrace();
}
r.getContents().clear();
r.getContents().add(subEPackage1);
try {
System.out
.println("--- subEPackage1-----------------------------");
r.save(System.out, null);
System.out
.println("---------------------------------------------");
} catch (IOException e) {
e.printStackTrace();
}
}
return rootEPackage;
}
}