package at.medevit.elexis.cobasmira.model; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.LinkedList; import at.medevit.elexis.cobasmira.resulthandler.ErrorMessageHandler; import at.medevit.elexis.cobasmira.resulthandler.ImportPatientResult; public class CobasMiraLog { private static CobasMiraLog instance = null; private LinkedList<CobasMiraMessage> messageList = new LinkedList<CobasMiraMessage>(); private PropertyChangeSupport changes = new PropertyChangeSupport(this); private CobasMiraLog(){} public static CobasMiraLog getInstance(){ if (instance == null) { instance = new CobasMiraLog(); } return instance; } public void addMessage(CobasMiraMessage add){ int importSuccess = 0; if (add.getBlockType() == CobasMiraMessage.BLOCK_TYPE_PATIENT_RESULTS) { importSuccess = ImportPatientResult.importPatientResult(add); add.setElexisStatus(importSuccess); } else if (add.getBlockType() == CobasMiraMessage.BLOCK_TYPE_ERROR_MESSAGE) { add.setElexisStatus(CobasMiraMessage.ELEXIS_RESULT_IGNORED); ErrorMessageHandler.handleError(add); } else if (add.getBlockType() == CobasMiraMessage.BLOCK_TYPE_RACK_INFORMATION) { add.setElexisStatus(CobasMiraMessage.ELEXIS_RESULT_IGNORED); } messageList.add(add); changes.firePropertyChange("messageList", null, messageList); } public LinkedList<CobasMiraMessage> getMessageList(){ return messageList; } public void addPropertyChangeListener(PropertyChangeListener l){ changes.addPropertyChangeListener(l); } public void removePropertyChangeListener(PropertyChangeListener l){ changes.removePropertyChangeListener(l); } }