package info.ozkan.vipera.business.patient; import info.ozkan.vipera.entities.Doctor; import info.ozkan.vipera.entities.Patient; import javax.inject.Inject; import javax.inject.Named; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Hasta üzerinde CRUD işlemleri yapan Facade sınıfı * * @author Ömer Özkan * */ @Named("patientFacade") public class PatientFacadeImpl implements PatientFacade { /** * LOGGER */ private static final Logger LOGGER = LoggerFactory .getLogger(PatientFacadeImpl.class); /** * Manager */ @Inject private PatientManager patientManager; public PatientManagerResult add(final Patient patient) { PatientManagerResult result; try { result = patientManager.add(patient); } catch (final Exception e) { result = new PatientManagerResult(); result.setStatus(PatientManagerStatus.TCKN_HAS_EXIST); LOGGER.debug("The patient cannot be added!", e); } return result; } /** * {@link PatientManagerStatus#UNEXPECTED_ERROR} mesajı içeren bir * {@link PatientManagerResult} nesnesi oluşturur * * @return */ private PatientManagerResult createUnexpectedResult() { PatientManagerResult result; result = new PatientManagerResult(); result.setStatus(PatientManagerStatus.UNEXPECTED_ERROR); return result; } public PatientManagerResult delete(final Patient patient) { PatientManagerResult result; try { result = patientManager.delete(patient); } catch (final Exception e) { result = createUnexpectedResult(); LOGGER.error("The patient cannot be deleted!", e); } return result; } public PatientManagerResult getById(final Long id) { return patientManager.getById(id); } public PatientManagerResult search(final PatientSearchFilter filter) { return patientManager.search(filter); } public PatientManagerResult update(final Patient patient) { PatientManagerResult result; try { result = patientManager.update(patient); } catch (final Exception e) { result = createUnexpectedResult(); LOGGER.error("The patient cannot be updated!", e); } return result; } public PatientManagerResult search(final PatientSearchFilter filter, final Doctor doctor) { return patientManager.search(filter, doctor); } public PatientManagerResult getById(final Long id, final Doctor doctor) { return patientManager.getById(id, doctor); } }