I have the below code block which I'm trying to convert using java stream.
for(Emp emp:empList){
if(combinedData.getOrg()==null){
combinedData.setOrg(emp.getCompany());
}
combinedData.addToList(emp.getWorkLog());
if(combinedData.getRawData()!=null){
combinedData.setRawData(combinedData.getRawData()+emp.getData());
}
else{
combinedData.setRawData(emp.getData());
}
}
The challenge I have is that I need to set Org only one and also I need to append to the existing rawdata. I know it can be easily done with reduced number of lines using streams.
The complete code is below
public class Main {
public static void main(String[] args) {
List<Emp> empList = Arrays.asList(
new Emp("x1","as2112","a"),
new Emp("x1","as2122","b"),
new Emp("x1","as2422","c"),
new Emp("x1","as2423","d"));
CombinedData combinedData = new CombinedData();
for(Emp emp:empList){
if(combinedData.getOrg()==null){
combinedData.setOrg(emp.getCompany());
}
combinedData.addToList(emp.getWorkLog());
if(combinedData.getRawData()!=null){
combinedData.setRawData(combinedData.getRawData()+emp.getData());
}
else{
combinedData.setRawData(emp.getData());
}
}
}
}
class Emp{
private String company;
private String workLog;
private String data;
public Emp(
String company,
String workLog,
String data) {
this.company = company;
this.workLog = workLog;
this.data = data;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getWorkLog() {
return workLog;
}
public void setWorkLog(String workLog) {
this.workLog = workLog;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
class CombinedData{
private String org;
private List<String> worklogList;
private String rawData;
public String getOrg() {
return org;
}
public void setOrg(String org) {
this.org = org;
}
public List<String> getWorklogList() {
return worklogList;
}
public void setWorklogList(List<String> worklogList) {
this.worklogList = worklogList;
}
public String getRawData() {
return rawData;
}
public void setRawData(String rawData) {
this.rawData = rawData;
}
public void addToList(String worklog){
this.worklogList.add(worklog);
}
}
NullPointerException(CombinedData.addToList())!