package de.uni_koblenz.gremfeval.tools.greql;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import de.uni_koblenz.gremf.GrEMFFacade;
import de.uni_koblenz.jgralab.Graph;
public class TestNewJaMoPPFiles {
public static void main(String[] args) throws IOException {
ResourceSet load_resourceSet = new ResourceSetImpl();
load_resourceSet.getResourceFactoryRegistry()
.getExtensionToFactoryMap()
.put("*", GrEMFFacade.getGrEMFResourceFactoryForEcoreFiles());
Resource res = load_resourceSet.getResource(
URI.createURI("models/java.ecore"), true);
TreeIterator<EObject> iter = res.getAllContents();
while (iter.hasNext()) {
EObject eob = iter.next();
if (eob instanceof EPackage) {
load_resourceSet.getPackageRegistry().put(
((EPackage) eob).getNsURI(), eob);
}
}
Resource mod2 = load_resourceSet.getResource(
URI.createURI("models/GrEMFAttributesListProxy.xmi"), true);
for (EObject o : mod2.getContents()) {
System.out.println("- " + o);
}
Graph g = (Graph) mod2.getContents().get(0);
}
// delete layout infos
public static void main11(String[] args) throws IOException {
ResourceSet load_resourceSet = new ResourceSetImpl();
load_resourceSet.getResourceFactoryRegistry()
.getExtensionToFactoryMap()
.put("ecore", new EcoreResourceFactoryImpl());
load_resourceSet.getResourceFactoryRegistry()
.getExtensionToFactoryMap()
.put("javamodel", new XMIResourceFactoryImpl());
load_resourceSet.getResourceFactoryRegistry()
.getExtensionToFactoryMap()
.put("xmi", new XMIResourceFactoryImpl());
// load java.ecore
Resource res = load_resourceSet.getResource(
URI.createURI("models" + File.separator + "java.ecore"), true);
// load layout.ecore
Resource res2 = load_resourceSet.getResource(
URI.createURI("models" + File.separator + "layout.ecore"), true);
// register packages
TreeIterator<EObject> iter = res.getAllContents();
while (iter.hasNext()) {
EObject eob = iter.next();
if (eob instanceof EPackage) {
load_resourceSet.getPackageRegistry().put(
((EPackage) eob).getNsURI(), eob);
}
}
iter = res2.getAllContents();
while (iter.hasNext()) {
EObject eob = iter.next();
if (eob instanceof EPackage) {
load_resourceSet.getPackageRegistry().put(
((EPackage) eob).getNsURI(), eob);
}
}
// Load instance
Resource mod2 = load_resourceSet.getResource(
URI.createURI("models" + File.separator
+ "GrEMFAttributesListProxy.xmi"), true);
EcoreUtil.resolveAll(load_resourceSet);
// get java package
EPackage javapack = (EPackage) res.getContents().get(0);
// get commons package
EPackage commonspack = null;
for (EPackage ep : javapack.getESubpackages()) {
if (ep.getName().equals("commons")) {
commonspack = ep;
}
}
// get EClass Commentable in java/commons
EClass commentable = (EClass) commonspack.getEClassifier("Commentable");
// delete all layout informations
TreeIterator<EObject> it = mod2.getAllContents();
ArrayList<EObject> list = new ArrayList<EObject>();
while (it.hasNext()) {
list.add(it.next());
}
Collection<EObject> found = EcoreUtil.getObjectsByType(list,
commentable);
for (EObject c : found) {
c.eUnset(commentable.getEStructuralFeature("layoutInformations"));
}
// save the instance
mod2.save(null);
// delete the feature layoutInformations
EStructuralFeature li = commentable
.getEStructuralFeature("layoutInformations");
commentable.getEStructuralFeatures().remove(li);
// save java.ecore
res.save(null);
}
}