private Collection<ServiceEndpointCandidate> parseStringStream(Stream<String> input) { Collection<ServiceEndpointCandidate> uris = new ArrayList<>(); input.forEach( record -> { final String[] parts = record.split(" "); URI uri = UriBuilder.fromUri(uriFromParts(parts)).build(); if (UriHelper.isValidUrl(uri)) { if (parts.length > SERVICE_LIST_MIN_PARTS_LENGTH) { ServiceListRecordType recordType = recordTypeFromParts(parts); if (recordType != ServiceListRecordType.UNKNOWN_RECORD) { uris.add(new ServiceEndpointCandidate(recordType.getApiType(), uri)); } } else { uris.add(new ServiceEndpointCandidate(ServiceType.PSME_SERVICE, uri)); } } }); return uris; }
private ServiceListRecordType recordTypeFromParts(String[] parts) { String typePart = parts[SERVICE_LIST_TYPE_POSITION]; return ServiceListRecordType.fromString(typePart.toLowerCase()); }