package com.jasamedika.medifirst2000.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.jasamedika.medifirst2000.converter.ObjekModulAplikasiSConverter;
import com.jasamedika.medifirst2000.dao.ObjekModulAplikasiSDao;
import com.jasamedika.medifirst2000.entities.ObjekModulAplikasiS;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.ObjekModulAplikasiSService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.ObjekModulAplikasiSVO;

//@Service("objekModulAplikasiSService")
public class ObjekModulAplikasiSServiceImpl  /*extends BaseVoServiceImpl*/ implements ObjekModulAplikasiSService<ObjekModulAplikasiSVO>{
	
	
//	@Autowired
//	private ObjekModulAplikasiSDao objekModulAplikasiSDao;
//	
//	@Autowired
//	private ObjekModulAplikasiSConverter objekModulAplikasiSConverter;
//	
//	@Override
//	@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
//	public List<ObjekModulAplikasiSVO> findAllModulAplikasi(String kdModulAplikasi) {
//		return objekModulAplikasiSConverter.transferListOfModelToListOfVO(objekModulAplikasiSDao.findAllObjekModulAplikasi(kdModulAplikasi), null);
//	}
//	
//
//	@Override
//	@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
//	public ObjekModulAplikasiSVO findByAlamatUrlFormObjekModulAplikasi(String AlamatUrlFormObjekModulAplikasi) {
//		return objekModulAplikasiSConverter.transferModelToVO(objekModulAplikasiSDao.findByAlamatUrlFormObjekModulAplikasi(AlamatUrlFormObjekModulAplikasi), null);
//	}
//
//	
//
//	@Override
//	@Transactional(readOnly = false)
//	public ObjekModulAplikasiSVO add(ObjekModulAplikasiSVO vo) throws JpaSystemException, ServiceVOException {
//		ObjekModulAplikasiS modulAplikasiS = objekModulAplikasiSConverter.transferVOToModel(vo, new ObjekModulAplikasiS());
//		ObjekModulAplikasiS resultModel = objekModulAplikasiSDao.save(modulAplikasiS);
//		ObjekModulAplikasiSVO resultVo = new ObjekModulAplikasiSVO();
//		resultVo = objekModulAplikasiSConverter.transferModelToVO(resultModel, resultVo);
//		return resultVo;
//	}
//
//	@Override
//	@Transactional(readOnly = false)
//	public ObjekModulAplikasiSVO update(ObjekModulAplikasiSVO vo) throws JpaSystemException, ServiceVOException {
//
//		ObjekModulAplikasiS modulAplikasiS = objekModulAplikasiSDao.findOne(vo.getId());
//		modulAplikasiS = objekModulAplikasiSConverter.transferVOToModel(vo, modulAplikasiS);
//
//		objekModulAplikasiSDao.save(modulAplikasiS);
//		return vo;
//	}
//
//	@Override
//	public Boolean delete(Integer key) throws JpaSystemException {
//		if (CommonUtil.isNotNullOrEmpty(key)) {
//
//			ObjekModulAplikasiS modulAplikasiS = objekModulAplikasiSDao.findOne(key);
//			objekModulAplikasiSDao.delete(modulAplikasiS);
//			ObjekModulAplikasiSVO modulApp = objekModulAplikasiSConverter.transferModelToVO(modulAplikasiS, new ObjekModulAplikasiSVO());
//			modulApp.setStatusEnabled(false);
//			return true;
//		} else {
//			return false;
//		}
//
//	}
//
//	@Override
//	public ObjekModulAplikasiSVO findById(Integer key) throws JpaSystemException {
//		return null;
//	}
//
//	@Override
//	public List<ObjekModulAplikasiSVO> findAll() throws JpaSystemException {
//		return null;
//	}
//
//	@Override
//	@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
//	public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
//			String sort, String dir) {
//		
//		List<ObjekModulAplikasiSVO> modulAplikasiVOList = new ArrayList<ObjekModulAplikasiSVO>();
//		Pageable pageable = new PageRequest(page, limit, getSortBy(sort, dir));
//		Page<ObjekModulAplikasiS> resultPage = objekModulAplikasiSDao.findAll(pageable);
//		List<ObjekModulAplikasiS> modulAplikasiList = resultPage.getContent();
//
//		objekModulAplikasiSConverter.transferListOfModelToListOfVO(modulAplikasiList, modulAplikasiVOList);
//
//		return constructMapReturn(modulAplikasiVOList, resultPage.getTotalElements(), resultPage.getTotalPages());
//	}





}
