public ProvidedPortInstance withTypeNamed(String name){ for (ProvidedPortInstance port: this) { if (port.getType().getName().equals(name)) { return port; } } return null; }
@Override public boolean equals(Object other) { if (other == null) { return false; } if (other instanceof Relationship) { Relationship relationship = (Relationship) other; return (requiredEnd.getName().equals(relationship.getRequiredEnd().getName()) && providedEnd.getName().equals(relationship.getProvidedEnd().getName())); } return false; } }
@Override public ProvidedPortInstance instantiate() { return new ProvidedPortInstance(ModelUtils.generateUniqueName(getName()), this); }
@Override protected void handleLackOfCandidate(Deployment deployment, List<ProvidedPortInstance> candidates) { final Component component = getLibrary().findComponentProviding(deployment, bindingType); final ComponentInstance<? extends Component> instance = getLibrary().provision(deployment, component); final ProvidedPortInstance serverPort = instance.getProvidedPorts().withTypeNamed(bindingType.getProvidedEnd().getName()); candidates.add(serverPort); }
public void convertAndAddProvidedPorts(List<ProvidedPort> ports, net.cloudml.core.Component kc) { checkNull(ports, "cannot iterate on null!"); for (ProvidedPort pp: ports) { checkNull(pp, "cannot convert null!"); net.cloudml.core.ProvidedPort kpp = factory.createProvidedPort(); kpp.setName(pp.getName()); convertProperties(pp, kpp, factory); kpp.setPortNumber(pp.getPortNumber()); kpp.setIsLocal(pp.isLocal()); kc.addProvidedPorts(kpp); kpp.setComponent(kc); providedPorts.put(calculatePortIdentifier(pp), kpp); } assert providedPorts.size() >= ports.size(); assert kc.getProvidedPorts().size() == ports.size(); }
mapping.get(ri.getClientComponent()).asInternal().getRequiredPorts().ofType(ri.getRequiredEnd().getType()).getType().getName()) .to(mapping.get(ri.getServerComponent()).getName(), mapping.get(ri.getServerComponent()).getProvidedPorts().ofType(ri.getProvidedEnd().getType()).getType().getName()) .ofType(ri.getType().getName())); }else{ mapping.get(ri.getClientComponent()).asInternal().getRequiredPorts().ofType(ri.getRequiredEnd().getType()).getType().getName()) .to(ri.getServerComponent().getName(), ri.getProvidedEnd().getType().getName()) .ofType(ri.getType().getName())); ri.getRequiredEnd().getName()) .to(mapping.get(ri.getServerComponent()).getName(), mapping.get(ri.getServerComponent()).getProvidedPorts().ofType(ri.getProvidedEnd().getType()).getType().getName()) .ofType(ri.getType().getName()));
@Override public Void applyTo(Deployment deployment) { if (!clientPort.isBound()) { final Relationship bindingType = getLibrary().findRelationshipFor(deployment, clientPort); final String name = getLibrary().createUniqueRelationshipInstanceName(deployment, bindingType); final ProvidedPortInstance serverPort = getLibrary().findProvidedPortFor(deployment, bindingType); if(bindingType == null){ throw new IllegalStateException("No type of relationship found for the client port: "+clientPort.getQualifiedName()); } if(serverPort == null){ throw new IllegalStateException("No Server port for the client port: "+clientPort.getQualifiedName()); } aRelationshipInstance() .named(name) .from(clientPort.getOwner().getName(), clientPort.getType().getName()) .to(serverPort.getOwner().getName(), serverPort.getType().getName()) .ofType(bindingType.getName()) .integrateIn(deployment); } return NOTHING; }