package com.common.print.many;

import com.common.print.bean.PrintBean;
import com.common.print.bean.PrintContentBean;
import com.common.print.many.base.IPrinter;
import com.common.print.callback.PrintInitResultCallback;

import java.util.List;

/**
 * 空实现
 */
public class NullPrinter implements IPrinter {


    //用volatile关键字确保 instance 在多线程下的可见性
    private static volatile NullPrinter instance = null;

    //将构造方法私有化，禁止外部通过构造方法创建实例
    private NullPrinter() {}

    //提供一个公共的访问方法，用于获取该类的唯一实例
    public static NullPrinter getInstance() {
        //如果instance为空，就进行实例化
        if (instance == null) {
            //保证多线程下只有一个线程进行实例化
            synchronized (NullPrinter.class) {
                //第二次判断，避免多线程下创建多个实例
                if (instance == null) {
                    instance = new NullPrinter();
                }
            }
        }
        return instance;
    }


    PrintInitResultCallback printInitResultCallback;

    @Override
    public void initPrint(PrintInitResultCallback printInitResultCallback) {
        this.printInitResultCallback = printInitResultCallback;
//        printInitResultCallback.onPrintInitSuccess();
    }

    @Override
    public void printText(String text, int align, int textSize, boolean isBold) {

    }

    @Override
    public void printBarCode(String text, int width, int height) {

    }

    @Override
    public void printQrCode(String text, int width, int height) {

    }

    @Override
    public void printBitmap(String base64, int width, int height) {

    }

    @Override
    public void printTextBitmap(List<PrintContentBean> printContentList, PrintBean.PrintConfigDTO printConfigDTO) {

    }

    @Override
    public void printBitmap(PrintBean.PrintConfigDTO printConfigDTO, String base64, int width, int height) {

    }

    @Override
    public void printPDF(PrintBean.PrintConfigDTO printConfigDTO, String localPath) {

    }


    @Override
    public void feed(int line) {

    }

    @Override
    public void cutPaper() {

    }

    @Override
    public void disconnect() {

    }

    @Override
    public void startPrint() {

    }
}
