package org.kevoree.kevscript.statement;
import org.kevoree.*;
import org.kevoree.kevscript.Type;
import org.kevoree.kevscript.util.InstanceResolver;
import org.waxeye.ast.IAST;
import java.util.List;
import java.util.Map;
/**
*
* Created by leiko on 12/15/16.
*/
public class RemoveStmt {
public static void interpret(IAST<Type> stmt, ContainerRoot model, Map<String, String> ctxVars) throws Exception {
final List<Instance> toRemove = InstanceResolver.resolve(stmt.getChildren().get(0), model, ctxVars);
for (final Instance toDrop : toRemove) {
if (toDrop instanceof ComponentInstance) {
final ComponentInstance ci = (ComponentInstance) toDrop;
for (final Port p : ci.getProvided()) {
for (final MBinding mb : p.getBindings()) {
mb.delete();
}
}
for (final Port p : ci.getRequired()) {
for (final MBinding mb : p.getBindings()) {
mb.delete();
}
}
}
toDrop.delete();
}
}
}