/* * ATM Example system - file Status.java     * * copyright (c) 2001 - Russell C. Bjork * */ package banking;/** Abstract base class for representation of various status codes returned *  by bank for a transaction.  The bank will create appropriate subclasses. */public abstract class Status{    /** Create a printable string representing this status     *     *  @return string representation     */    public String toString()    {        if (isSuccess())            return "SUCCESS";        else if (isInvalidPIN())            return "INVALID PIN";        else            return "FAILURE " + getMessage();    }        /** See if this status represents success     *     *  @return true if this status represents success     */    public abstract boolean isSuccess();        /** See if this status represents an invalid PIN     *     *  @return true if this status represents an invalid PIN     */    public abstract boolean isInvalidPIN();        /** Accessor for message describing this status (used if status is     *  not success)     *     *  @return description of the problem     */    public abstract String getMessage();}