public void convertAndAddRequiredPorts(List<RequiredPort> ports, net.cloudml.core.InternalComponent kic) { checkNull(ports, "Cannot iterate on null!"); for (RequiredPort rp: ports) { checkNull(rp, "cannot convert null!"); net.cloudml.core.RequiredPort krp = factory.createRequiredPort(); krp.setName(rp.getName()); convertProperties(rp, krp, factory); krp.setPortNumber(rp.getPortNumber()); krp.setIsLocal(rp.isLocal()); krp.setIsMandatory(rp.isMandatory()); kic.addRequiredPorts(krp); krp.setComponent(kic); requiredPorts.put(calculatePortIdentifier(rp), krp); } assert requiredPorts.size() >= ports.size(); assert kic.getRequiredPorts().size() == ports.size(); }
@Override public void validate(Report report) { if (requiredEnd != null && providedEnd != null) { if (requiredEnd.isLocal() && providedEnd.isRemote()) { final String message = String.format( "Illegal relationship (%s) between a local client (%s) and a remote server (%s)", getName(), requiredEnd.getQualifiedName(), providedEnd.getQualifiedName() ); report.addError(message); } if (requiredEnd.isRemote() && providedEnd.isLocal()) { final String message = String.format( "Illegal relationship (%s) between a remote client (%s) and a local server (%s)", getName(), requiredEnd.getQualifiedName(), providedEnd.getQualifiedName()); report.addError(message); } } }
private void unconfigureRelationship(RelationshipInstance b) { if (!b.getRequiredEnd().getType().isLocal()) { RequiredPortInstance client = b.getRequiredEnd(); ProvidedPortInstance server = b.getProvidedEnd(); Resource clientResource = b.getType().getClientResource(); Resource serverResource = b.getType().getServerResource(); //client resources unconfigureWithIP(clientResource, client); //server resources unconfigureWithIP(serverResource, server); } }
/** * Find the destination of an ComponentInstance * * @param a an instance of component * @return a VMInstance */ private ExternalComponentInstance findDestinationWhenNoRequiredExecutionPlatformSpecified(InternalComponentInstance a) { if (getDestination(a) != null) { return getDestination(a); } else { for (RelationshipInstance b : currentModel.getRelationshipInstances()) { if (a.getRequiredPorts().contains(b.getRequiredEnd()) && b.getRequiredEnd().getType().isLocal()) { return getDestination(b.getProvidedEnd().getOwner().get()); } if (a.getProvidedPorts().contains(b.getProvidedEnd()) && b.getProvidedEnd().getType().isLocal()) { return getDestination(b.getRequiredEnd().getOwner().get()); } } return null; } }