blob: dd0832db45d91cf2235fbda1292c93add217e15c [file] [log] [blame]
//Generated on Wed Aug 08 15:49:13 CEST 2012 with EGF 1.0.0.qualifier
package org.eclipse.egf.emf.pattern.model.cdo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.egf.emf.pattern.base.CodegenGeneratorAdapter;
import org.eclipse.egf.model.domain.EMFDomain;
import org.eclipse.egf.model.pattern.Node;
import org.eclipse.egf.model.pattern.PatternContext;
import org.eclipse.egf.pattern.execution.InternalPatternContext;
import org.eclipse.egf.pattern.execution.OutputManager;
import org.eclipse.egf.pattern.query.IQuery;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.common.util.BasicMonitor;
import org.eclipse.emf.common.util.URI;
public class abstractCopy {
public abstractCopy() {
//Here is the constructor
// add initialisation of the pattern variables (declaration has been already done).
}
public void generate(Object argument) throws Exception {
InternalPatternContext ctx = (InternalPatternContext) argument;
IQuery.ParameterDescription paramDesc = null;
Map<String, String> queryCtx = null;
Node.Container currentNode = ctx.getNode();
if (preCondition(ctx))
orchestration((PatternContext) argument);
if (ctx.useReporter()) {
ctx.getReporter().executionFinished(OutputManager.computeExecutionOutput(ctx), ctx);
}
}
public String orchestration(PatternContext ctx) throws Exception {
InternalPatternContext ictx = (InternalPatternContext) ctx;
Node.Container currentNode = ictx.getNode();
method_setQualifiedName(new StringBuffer(), ictx);
method_copyClass(new StringBuffer(), ictx);
ictx.setNode(currentNode);
return null;
}
protected void method_setQualifiedName(final StringBuffer out, final PatternContext ctx) throws Exception {
InternalPatternContext ictx = (InternalPatternContext) ctx;
new Node.DataLeaf(ictx.getNode(), getClass(), "setQualifiedName", out.toString());
}
protected void method_copyClass(final StringBuffer out, final PatternContext ctx) throws Exception {
List list = (List) ctx.getValue("domain");
GenModel genModel = (GenModel) list.get(0);
EMFDomain domainOut = (EMFDomain) ctx.getValue("domainOut");
GenModel newGenModel = (GenModel) domainOut.getContent().get(0);
String modelDirectory = genModel.getModelDirectory();
String newModelDirectory = newGenModel.getModelDirectory();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
Path srcPath = new Path(modelDirectory + "/" + qualifiedName.replace('.', '/') + ".java");
Path destPath = new Path(newModelDirectory + "/" + qualifiedName.replace('.', '/') + ".java");
IFile srcFile = root.getFile(srcPath);
if (srcFile.exists()) {
URI containerURI = URI.createURI(destPath.removeLastSegments(1).toPortableString());
new CodegenGeneratorAdapter(newGenModel).ensureContainerExists(containerURI, new BasicMonitor());
srcFile.copy(destPath, true, new NullProgressMonitor());
}
InternalPatternContext ictx = (InternalPatternContext) ctx;
new Node.DataLeaf(ictx.getNode(), getClass(), "copyClass", out.toString());
}
public boolean preCondition(PatternContext ctx) throws Exception {
return true;
}
protected java.lang.String qualifiedName;
public void set_qualifiedName(java.lang.String qualifiedName) {
this.qualifiedName = qualifiedName;
}
public Map<String, Object> getParameters() {
Map<String, Object> parameters = new HashMap<String, Object>();
return parameters;
}
}