private void addPortBindings(AdaptationModel adaptationModel, HashMap<String, TupleObjPrim> elementAlreadyProcessed, Port port) { for (MBinding binding : port.getBindings()) { TupleObjPrim bindingTuple = new TupleObjPrim(binding, AdaptationType.AddBinding); if (!elementAlreadyProcessed.containsKey(bindingTuple.getKey())) { adaptationModel.getAdaptations().add(adapt(AdaptationType.AddBinding, binding)); elementAlreadyProcessed.put(bindingTuple.getKey(), bindingTuple); } } }
public void setModelElement(Instance modelElement) { super.setModelElement(modelElement); ComponentInstance instance = (ComponentInstance) getModelElement(); for (Port requiredPort : instance.getRequired()) { Field field = recursivelyLookForDeclaredRequiredPort(requiredPort.getPortTypeRef().getName(), getTargetObj().getClass()); if (field != null) { if (!field.isAccessible()) { field.setAccessible(true); } RequiredPortImpl portWrapper = new RequiredPortImpl(requiredPort.path()); try { field.set(getTargetObj(), portWrapper); } catch (IllegalAccessException e) { e.printStackTrace(); } requiredPorts.put(requiredPort.getPortTypeRef().getName(), portWrapper); } else { Log.warn("A required Port is defined at the model level but is not available at the implementation level"); } } for (Port providedPort : instance.getProvided()) { ProvidedPortImpl portWrapper = new ProvidedPortImpl(getTargetObj(), providedPort.getPortTypeRef().getName(), providedPort.path(), this); providedPorts.put(providedPort.getPortTypeRef().getName(), portWrapper); } }
@Override public List<String> getRemotePortPaths() { ArrayList<String> result = new ArrayList<String>(); Channel channel = (Channel) modelService.getCurrentModel().getModel().findByPath(channelPath); if (channel != null) { for (MBinding binding : channel.getBindings()) { ContainerNode parentNode = (ContainerNode) binding.getPort().eContainer().eContainer(); if (parentNode != null) { if (!parentNode.getName().equals(localNodePath)) { org.kevoree.Port finalPort = binding.getPort(); if (finalPort != null) { result.add(finalPort.path()); } } } } } return result; } }
@Override public boolean execute() { Object chan = registry.lookup(c.getHub()); Object comp = registry.lookup(c.getPort().eContainer()); if (chan != null && comp != null && comp instanceof ComponentWrapper && chan instanceof ChannelWrapper) { String portName = c.getPort().getPortTypeRef().getName(); RequiredPortImpl output = ((ComponentWrapper) comp).getRequiredPorts().get(portName); ProvidedPortImpl input = ((ComponentWrapper) comp).getProvidedPorts().get(portName); if (output == null && input == null) { Log.info("Port instance {} not found in component", portName); return false; } if (output != null) { output.addChannelWrapper(c, (ChannelWrapper) chan); Log.info("Bind {} {}", c.getPort().path(), c.getHub().path()); return true; } // Seems useless ((ChannelWrapper) chan).getContext().getBoundPorts().put(input.getPath(), input); Log.info("Bind {} {}", c.getPort().path(), c.getHub().path()); return true; } else { Log.error("Error while apply binding , channelFound=" + chan + ", componentFound=" + comp); return false; } }
for (final PortTypeRef rport : ctd.getProvided()) { final org.kevoree.Port newPort = factory.createPort(); newPort.setPortTypeRef(rport); newPort.setName(rport.getName()); instance.addProvided(newPort); newPort.setPortTypeRef(rport); newPort.setName(rport.getName()); instance.addRequired(newPort);
public boolean execute() { try { Object kevoreeChannelFound = registry.lookup(c.getHub()); Object kevoreeComponentFound = registry.lookup(c.getPort().eContainer()); if(kevoreeChannelFound != null && kevoreeComponentFound != null && kevoreeComponentFound instanceof ComponentWrapper && kevoreeChannelFound instanceof ChannelWrapper){ String portName = c.getPort().getPortTypeRef().getName(); RequiredPortImpl foundNeedPort = ((ComponentWrapper) kevoreeComponentFound).getRequiredPorts().get(portName); ProvidedPortImpl foundHostedPort = ((ComponentWrapper) kevoreeComponentFound).getProvidedPorts().get(portName); if(foundNeedPort == null && foundHostedPort == null){ Log.info("Port instance not found in component"); return false; } if (foundNeedPort != null) { foundNeedPort.removeChannelWrapper(c); return true; } ((ChannelWrapper) kevoreeChannelFound).getContext().getPortsBinded().remove(foundHostedPort.getPath()); return true; } else { return false; } } catch (Exception e) { System.err.println("REMOVE BINDING FAILED"); e.printStackTrace(); } return false; }
ComponentInstance cinstance = (ComponentInstance) ci; for (Port p : cinstance.getProvided()) { if (p.getPortTypeRef().getName().equals(portName)) { resolved.add(p); if (p.getPortTypeRef().getName().equals(portName)) { resolved.add(p);
public void removeChannelWrapper(MBinding binding) { delegate.remove(binding.getHub().path()+"_"+binding.getPort().path()); } }
public String toString() { String hubName = ""; if (c.getHub() != null) { hubName = c.getHub().getName(); } String compName = ""; if (c.getPort() != null) { compName = ((ComponentInstance) c.getPort().eContainer()).getName(); } return "AddBindingCommand " + hubName + " <-> " + compName; } }
for (final PortTypeRef rport : ctd.getProvided()) { final org.kevoree.Port newPort = factory.createPort(); newPort.setPortTypeRef(rport); newPort.setName(rport.getName()); instance.addProvided(newPort); newPort.setPortTypeRef(rport); newPort.setName(rport.getName()); instance.addRequired(newPort);
ComponentInstance cinstance = (ComponentInstance) ci; for (Port p : cinstance.getProvided()) { if (p.getPortTypeRef().getName().equals(portName)) { resolved.add(p); if (p.getPortTypeRef().getName().equals(portName)) { resolved.add(p);
public void addChannelWrapper(MBinding binding, ChannelWrapper chan) { delegate.put(binding.getHub().path()+"_"+binding.getPort().path(), chan); }
public String toString() { String s = "RemoveBindingCommand "; if(c.getHub() != null) { s += c.getHub().getName(); } else { s += " hub:null"; } s += "<->"; if(c.getPort() != null) { s += ((ComponentInstance)c.getPort().eContainer()).getName(); } else { s += " port:null"; } return s ; }
private void removePortBindings(AdaptationModel adaptationModel, HashMap<String, TupleObjPrim> elementAlreadyProcessed, Port port) { for (MBinding binding : port.getBindings()) { TupleObjPrim bindingTuple = new TupleObjPrim(binding, AdaptationType.RemoveBinding); if (!elementAlreadyProcessed.containsKey(bindingTuple.getKey())) { adaptationModel.getAdaptations().add(adapt(AdaptationType.RemoveBinding, binding)); elementAlreadyProcessed.put(bindingTuple.getKey(), bindingTuple); } } }
private void monkeyPatchKMF(ContainerRoot proposedModel) { for (MBinding possibleBinding : proposedModel.getmBindings()) { String chanPath = (possibleBinding.getHub() != null ? possibleBinding.getHub().path() : "UNDEFINED"); String portPath = (possibleBinding.getPort() != null ? possibleBinding.getPort().path() : "UNDEFINED"); String hash = hash(chanPath + "_" + portPath); possibleBinding.reflexiveMutator(ActionType.SET, "generated_KMF_ID", hash, true, false); } }
private boolean isVirtual(KMFContainer element) { if (element instanceof Instance) { return isVirtual(((Instance) element).getTypeDefinition()); } else if (element instanceof TypeDefinition) { Value virtual = ((TypeDefinition) element).findMetaDataByID("virtual"); return virtual != null; } else if (element instanceof MBinding) { MBinding binding = (MBinding) element; if (binding.getHub() != null) { return isVirtual(binding.getHub().getTypeDefinition()); } if (binding.getPort() != null) { return isVirtual(binding.getPort().eContainer()); } } return false; }
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(); } } }
public static void interpret(IAST<Type> stmt, ContainerRoot model, Map<String, String> ctxVars) throws KevScriptException { 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(); } } }
for (ComponentInstance comp : targetNode.getComponents()) { for (Port port : comp.getProvided()) { for (MBinding b : port.getBindings()) { if (b.getHub() != null && !channelsAlreadySeen.contains(b.getHub().path())) { Channel previousChannel = (Channel) currentModel.findByPath(b.getHub().path()); for (MBinding b : port.getBindings()) { if (b.getHub() != null && !channelsAlreadySeen.contains(b.getHub().path())) { Channel previousChannel = (Channel) currentModel.findByPath(b.getHub().path());