package jpos;

import jpos.events.*;

public interface MICRControl12 extends BaseControl
{
    // Capabilities
    public boolean getCapValidationDevice() throws JposException;

    // Properties
    public boolean getAutoDisable() throws JposException;
    public void    setAutoDisable(boolean autoDisable) throws JposException;
    public String  getAccountNumber() throws JposException;
    public String  getAmount() throws JposException;
    public String  getBankNumber() throws JposException;
    public int     getCheckType() throws JposException;
    public int     getCountryCode() throws JposException;
    public int     getDataCount() throws JposException;
    public boolean getDataEventEnabled() throws JposException;
    public void    setDataEventEnabled(boolean dataEventEnabled)
                       throws JposException;
    public String  getEPC() throws JposException;
    public String  getRawData() throws JposException;
    public String  getSerialNumber() throws JposException;
    public String  getTransitNumber() throws JposException;

    // Methods
    public void    beginInsertion(int timeout) throws JposException;
    public void    beginRemoval(int timeout) throws JposException;
    public void    clearInput() throws JposException;
    public void    endInsertion() throws JposException;
    public void    endRemoval() throws JposException;

    // Event listener methods
    public void    addDataListener(DataListener l);
    public void    removeDataListener(DataListener l);
    public void    addDirectIOListener(DirectIOListener l);
    public void    removeDirectIOListener(DirectIOListener l);
    public void    addErrorListener(ErrorListener l);
    public void    removeErrorListener(ErrorListener l);
}