package org.osbp.tests.dtos.service;

import org.eclipse.osbp.dsl.dto.lib.services.impl.AbstractDTOService;
import org.osbp.tests.dtos.CompanyDto;
import org.osbp.tests.entities.Company;

@SuppressWarnings("all")
public class CompanyDtoService extends AbstractDTOService<CompanyDto, Company> {
  public Class<CompanyDto> getDtoClass() {
    return CompanyDto.class;
  }
  
  public Class<Company> getEntityClass() {
    return Company.class;
  }
  
  public Object getId(final CompanyDto dto) {
    return dto.getId();
  }
}
