package com.farata.example.service;
import java.util.List;
import java.util.Map;
import clear.transaction.identity.IdentityRack;
import com.farata.example.data.DataEngine;
import com.farata.example.dto.CompanyDTO;
import com.farata.example.service.generated._CompanyService;
import clear.data.ChangeObject;
public class CompanyService extends _CompanyService {
DataEngine dataEngine = DataEngine.getInstance();
@Override
public List<CompanyDTO> getCompanies() {
List<CompanyDTO> companyList = dataEngine.getCompanyList();
System.out.println("getCompanies method has returned " + companyList.size() + " CompanyDTO records");
return companyList;
}
@Override
public void getCompanies_doCreate(ChangeObject changeObject) {
System.out.println("doCreate method");
CompanyDTO dto = (CompanyDTO)deserializeObject((Map<String, String>)changeObject.getNewVersion(), CompanyDTO.class);
if ((dto.getId() == null) || (dto.getId() <= 0)) {
Object oldId = dto.getId();
dto.setId(dataEngine.getMaxCompanyId() + 1);
changeObject.addChangedPropertyName("id");
IdentityRack.setIdentity(CompanyDTO.class.getName(), "id", oldId, dto.getId());
}
dataEngine.addCompany(dto);
changeObject.setNewVersion(dto);
}
@Override
public void getCompanies_doUpdate(ChangeObject changeObject) {
System.out.println("doUpdate method executing");
CompanyDTO newVersion = (CompanyDTO)deserializeObject((Map<String, String>)changeObject.getNewVersion(), CompanyDTO.class);
CompanyDTO previousVersion = (CompanyDTO)deserializeObject((Map<String, String>)changeObject.getPreviousVersion(), CompanyDTO.class);
dataEngine.updateCompany(previousVersion, newVersion, changeObject.getChangedPropertyNames() );
}
@Override
public void getCompanies_doDelete(ChangeObject changeObject) {
System.out.print("doDelete method ");
CompanyDTO dto = (CompanyDTO)deserializeObject((Map<String, String>)changeObject.getPreviousVersion(), CompanyDTO.class);
CompanyDTO removed = dataEngine.removeCompany(dto);
if (removed != null) {
System.out.println("removed: " + removed);
}
}
}