@Override public void handle(ServiceRequest<GetEndpointsRequest, GetEndpointsResponse> service) throws UaException { GetEndpointsRequest request = service.getRequest(); String endpointUrl = request.getEndpointUrl(); if (endpointUrl == null) endpointUrl = ""; UaTcpStackServer server = servers.get(endpointUrl); EndpointDescription[] endpoints = (server != null) ? server.getEndpointDescriptions() : new EndpointDescription[0]; List<String> profileUris = request.getProfileUris() != null ? Lists.newArrayList(request.getProfileUris()) : Lists.newArrayList(); EndpointDescription[] filtered = Arrays.stream(endpoints) .filter(ed -> filterProfileUris(ed, profileUris)) .filter(this::filterEndpointUrls) .toArray(EndpointDescription[]::new); service.setResponse(new GetEndpointsResponse(service.createResponseHeader(), filtered)); }