protected boolean validatePortNames()

in taverna-spreadsheet-import-activity-ui/src/main/java/org/apache/taverna/activities/spreadsheet/views/SpreadsheetImportConfigView.java [901:935]


	protected boolean validatePortNames() {
		boolean isValid = true;
		Range columnRange = SpreadsheetUtils.getRange(newConfiguration.get("columnRange"));
		Map<String, String> mapping = new HashMap<>();
		if (newConfiguration.has("columnNames")) {
			for (JsonNode columnName : newConfiguration.get("columnNames")) {
				mapping.put(columnName.get("column").textValue(), columnName.get("port").textValue());
			}
		}
		Set<String> usedNames = new HashSet<String>();
		for (Entry<String, String> entry : mapping.entrySet()) {
			if (columnRange.contains(SpreadsheetUtils.getColumnIndex(entry.getKey()))) {
				String portName = entry.getValue();
				if (!usedNames.add(portName)) {
					isValid = false;
					break;
				}
				if (portName.matches("[A-Z]+")) {
					if (!mapping.containsKey(portName)) {
						int columnIndex = SpreadsheetUtils.getColumnIndex(portName);
						if (columnRange.contains(columnIndex)) {
							isValid = false;
							break;
						}
					}
				}
			}
		}
		if (isValid) {
			removeErrorMessage(DUPLICATE_PORT_NAME_ERROR_MESSAGE);
		} else {
			addErrorMessage(DUPLICATE_PORT_NAME_ERROR_MESSAGE);
		}
		return isValid;
	}