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(); }
@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); } } }
/** * 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; } }