package jpos;

import jpos.events.*;

public interface MSRControl12 extends BaseControl
{
    // Capabilities
    public boolean getCapISO() throws JposException;
    public boolean getCapJISOne() throws JposException;
    public boolean getCapJISTwo() throws JposException;

    // Properties
    public String  getAccountNumber() throws JposException;
    public boolean getAutoDisable() throws JposException;
    public void    setAutoDisable(boolean autoDisable) throws JposException;
    public int     getDataCount() throws JposException;
    public boolean getDataEventEnabled() throws JposException;
    public void    setDataEventEnabled(boolean dataEventEnabled)
                       throws JposException;
    public boolean getDecodeData() throws JposException;
    public void    setDecodeData(boolean decodeData) throws JposException;
    public int     getErrorReportingType() throws JposException;
    public void    setErrorReportingType(boolean errorReportingType)
                       throws JposException;
    public String  getExpirationDate() throws JposException;
    public String  getFirstName() throws JposException;
    public String  getMiddleInitial() throws JposException;
    public boolean getParseDecodeData() throws JposException;
    public void    setParseDecodeData(boolean parseDecodeData)
                       throws JposException;
    public String  getServiceCode() throws JposException;
    public String  getSuffix() throws JposException;
    public String  getSurname() throws JposException;
    public String  getTitle() throws JposException;
    public byte[]  getTrack1Data() throws JposException;
    public byte[]  getTrack1DiscretionaryData() throws JposException;
    public byte[]  getTrack2Data() throws JposException;
    public byte[]  getTrack2DiscretionaryData() throws JposException;
    public byte[]  getTrack3Data() throws JposException;
    public int     getTracksToRead() throws JposException;
    public void    setTracksToRead(int tracksToRead) throws JposException;

    // Methods
    public void    clearInput() 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);
}