package org.kevoree.kevscript.statement;
import org.kevoree.*;
import org.kevoree.factory.DefaultKevoreeFactory;
import org.kevoree.kevscript.Type;
import org.kevoree.kevscript.util.InstanceResolver;
import org.kevoree.kevscript.util.PortResolver;
import org.waxeye.ast.IAST;
import java.util.List;
import java.util.Map;
/**
*
* Created by leiko on 12/15/16.
*/
public class AddBinding {
public static void interpret(IAST<Type> stmt, ContainerRoot model, Map<String, String> ctxVars) throws Exception {
DefaultKevoreeFactory factory = new DefaultKevoreeFactory();
final List<Instance> channelsInstance = InstanceResolver.resolve(stmt.getChildren().get(1), model, ctxVars);
for (final Instance instance : channelsInstance) {
final Channel channel = (Channel) instance;
final List<Port> ports = PortResolver.resolve(model, stmt.getChildren().get(0));
for (final Port p : ports) {
final MBinding mb = factory.createMBinding();
mb.setPort(p);
mb.setHub(channel);
model.addMBindings(mb);
}
}
}
}