FileDocCategorySizeDatePackage
NullPrinter.javaAPI DocExample1482Thu Nov 08 00:23:46 GMT 2001com.ora.rmibook.chapter3.printers

NullPrinter.java

package com.ora.rmibook.chapter3.printers;


import com.ora.rmibook.chapter3.*;
import java.io.*;


public class NullPrinter implements Printer {
    private PrintWriter _log;
    public NullPrinter(OutputStream log) {
        _log = new PrintWriter(log);
    }

    public boolean printerAvailable() {
        return true;
    }

    public boolean printDocument(DocumentDescription documentDescription)
        throws PrinterException {
        if (null == _log) {
            throw new NoLogException();
        }
        if (null == documentDescription) {
            throw new NoDocumentException();
        }
        _log.println("Printed file ");
        _log.flush();
        if (_log.checkError()) {
            throw new CantWriteToLogException();
        }
        return true;
    }

    private class NoLogException extends PrinterException {
        public NoLogException() {
            super (0, "Null printer failure. No log to record print request.");
        }
    }


    private class NoDocumentException extends PrinterException {
        public NoDocumentException() {
            super (0, "Null printer failure. No document received as part of print request.");
        }
    }


    private class CantWriteToLogException extends PrinterException {
        public CantWriteToLogException() {
            super (0, "Null printer failure. Attempt to record print request to log failed");
        }
    }
}