/*******************************************************************************
* Copyright (c) 2014-2016 IncQuery Labs Ltd.
* 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:
* Akos Horvath, Abel Hegedus, Zoltan Ujhelyi, Peter Lunk - initial API and implementation
*******************************************************************************/
package org.eclipse.viatra.examples.cps.integration;
import java.util.List;
import org.eclipse.emf.mwe2.runtime.workflow.IWorkflowContext;
import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine;
import org.eclipse.viatra.examples.cps.xform.m2t.api.ChangeM2TOutputProvider;
import org.eclipse.viatra.examples.cps.xform.m2t.api.ICPSGenerator;
import org.eclipse.viatra.examples.cps.xform.m2t.api.M2TOutputRecord;
import org.eclipse.viatra.examples.cps.xform.m2t.distributed.CodeGenerator;
import org.eclipse.viatra.examples.cps.xform.m2t.monitor.DeploymentChangeDelta;
import org.eclipse.viatra.integration.mwe2.IPublishTo;
import org.eclipse.viatra.integration.mwe2.mwe2impl.TransformationStep;
public class M2TDistributedTransformationStep extends TransformationStep {
protected AdvancedViatraQueryEngine engine;
public ICPSGenerator generator;
public String projectName;
public String sourceFolder;
public List<M2TOutputRecord> output;
public DeploymentChangeDelta delta;
@Override
public void doInitialize(IWorkflowContext ctx) {
System.out.println("Initialized model-to-text transformation");
engine = (AdvancedViatraQueryEngine) ctx.get("engine");
projectName = (String) ctx.get("projectname");
sourceFolder = (String) ctx.get("folder");
generator = new CodeGenerator(projectName,engine,true);
}
@Override
public void doExecute() {
ChangeM2TOutputProvider provider = new ChangeM2TOutputProvider(delta, generator, sourceFolder);
output = provider.generateChanges();
System.out.println("Model-to-text transformation executed");
}
@Override
public void publishMessages() {
for (IPublishTo iPublishTo : publishTo) {
iPublishTo.publishMessage(output);
}
}
@Override
public void dispose() {
System.out.println("Disposed model-to-text transformation");
}
}