public DetailsResponse common(String customerId, String personId) {
Capabilities capabilities = new Capabilities();
Details details = new Details();
DetailsResponse detailsResponse = new DetailsResponse();
consume("590204", "4252452")
.map(items -> items.get(0))
.flatMap(item -> {
return actions("432432", "1241441")
.map(ev -> {
switch (item.getCriticality()) {
case "HIGH":
case "VERY HIGH":
capabilities.setBan_hash("false");
capabilities.setI("false");
capabilities.setK("false");
details.setCriticality(item.getCriticality());
details.setHostname(item.getNames().get(0).getName());
detailsResponse.setCapabilities(capabilities);
detailsResponse.setDetails(details);
return detailsResponse;
default:
capabilities.setk(ev.get(con.getAlertCapabilitiesAndAssetDetails().getFields().get()));
capabilities.setI(ev.get(con.getAssetDetails().getFields().get()));
capabilities.setl(ev.get(con.getAlertCapabilitiesAndAssetDetails().getFields().get()));
details.setCriticality(item.getCriticality());
details.setHostname(item.getNames().get(0).getName());
detailsResponse.setCapabilities(capabilities);
capabilitiesAndAssetDetailsResponse.setDetails(asset);
detailsResponse.setDeviceid("");
return detailsResponse;
}
});
}).subscribe();
return detailsResponse;
}
Problem here is how to return the value returned by lamda inside the map as methods return value as the scope of value returned by lamda remains inside the lamda scope not the method scope.