I have to create a batch process which reads data from DB , process it and saves it in db . The batch data is fetched organization wise ( each organization has set of data to be processed) at once.We need to process only specific set of data i.e organization related and save it into db. Hence i have designed below classes . Does this design breaks SRP and OCP?Should the process method in DepositProcess have the code to iterate the batch data ?Batch Processor Interfacepackage com.ibank.batch;public interface BatchProcessor {    public void process();}Deposit Processort classpackage com.ibank.batch;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Set;import com.ibank.batch.svc.DepositBatchProcessorSvc;public class DepositProcessor implements BatchProcessor {    @Override    public void process() {        DepositBatchProcessorSvc svc = new DepositBatchProcessorSvc();        HashMap<String, List<String>> batchData = svc.fetchBatchData();        Set<String> key = batchData.keySet();        Iterator<String> keyItr = key.iterator();        while (keyItr.hasNext()) {            String organizationId = (String) keyItr.next();            List<String> claimsList = batchData.get(organizationId);            svc.saveBatchData(claimsList);        }    }}Service interface and implementation classpackage com.ibank.batch.svc;import java.util.List;public interface BatchProcessorSvc {    public Object fetchBatchData();    public <T>  void  saveBatchData(List<T> data);}package com.ibank.batch.svc;import java.util.HashMap;import java.util.List;public class DepositBatchProcessorSvc implements BatchProcessorSvc {    @Override    public HashMap<String, List<String>> fetchBatchData() {        return null;    }    @Override    public <String> void saveBatchData(List<String> claimList) {    }}DAO interface and implementation  package com.ibank.batch.dao;import java.util.List;public interface BatchProcessorDao {    public Object fetchBatchData();    public <T>  void  saveBatchData(List<T> data);}package com.ibank.batch.dao;import java.util.HashMap;import java.util.List;public class DepositBatchProcessorDao implements BatchProcessorDao {    @Override    public HashMap<String, List<String>> fetchBatchData() {        return null;    }    @Override    public <String> void saveBatchData(List<String> claimList) {    }}
Batch Processing : Design check with SRP and OCP prinicple
java;object oriented