package org.kevoree.library.reasoner.ecj.dpa;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.kevoree.ComponentInstance;
import org.kevoree.ContainerNode;
import org.kevoree.ContainerRoot;
import org.kevoree.NamedElement;
import org.kevoree.library.tools.dpa.DPA;
import org.kevoree.tools.marShell.parser.ParserUtil;
public class RemoveComponentDPA implements DPA {
public final static String componentName = "component";
public final static String nodeName = "node";
public final static String scriptPath = "removeComponent.kevs";
public List<Map<String, NamedElement>> applyPointcut(ContainerRoot myModel) {
List<Map<String, NamedElement>> results = new ArrayList();
for (ContainerNode containerNode : myModel.getNodes()) {
for (ComponentInstance componentInstance : containerNode.getComponents()) {
Map<String, NamedElement> myMap = new HashMap<String, NamedElement>();
myMap.put(this.componentName,
(NamedElement) componentInstance);
myMap.put(this.nodeName,
(NamedElement) containerNode);
results.add(myMap);
}
}
return results;
}
public String getScript(Map<String, NamedElement> myMap) {
String script = ParserUtil.loadFile(this.getClass().getClassLoader().getResource(scriptPath).getFile());
for (String name : myMap.keySet()) {
script = script.replace("${" + name + "}", myMap.get(name).getName());
}
return script;
}
}