BinaryOperator.java 源代码


package jxl.biff.formula;

import common.Logger;
import java.util.Stack;

abstract class BinaryOperator extends Operator implements ParsedThing {
    static Class class$jxl$biff$formula$BinaryOperator;
    private static final Logger logger;

    abstract String getSymbol();

    abstract Token getToken();

    @Override
    public int read(byte[] bArr, int i) {
        return 0;
    }

    static {
        Class cls = class$jxl$biff$formula$BinaryOperator;
        if (cls == null) {
            cls = class$("jxl.biff.formula.BinaryOperator");
            class$jxl$biff$formula$BinaryOperator = cls;
        }
        logger = Logger.getLogger(cls);
    }

    static Class class$(String str) {
        try {
            return Class.forName(str);
        } catch (ClassNotFoundException e) {
            throw new NoClassDefFoundError(e.getMessage());
        }
    }

    @Override
    public void getOperands(Stack stack) {
        ParseItem parseItem = (ParseItem) stack.pop();
        ParseItem parseItem2 = (ParseItem) stack.pop();
        add(parseItem);
        add(parseItem2);
    }

    @Override
    public void getString(StringBuffer stringBuffer) {
        ParseItem[] operands = getOperands();
        operands[1].getString(stringBuffer);
        stringBuffer.append(getSymbol());
        operands[0].getString(stringBuffer);
    }

    @Override
    public void adjustRelativeCellReferences(int i, int i2) {
        ParseItem[] operands = getOperands();
        operands[1].adjustRelativeCellReferences(i, i2);
        operands[0].adjustRelativeCellReferences(i, i2);
    }

    @Override
    public void columnInserted(int i, int i2, boolean z) {
        ParseItem[] operands = getOperands();
        operands[1].columnInserted(i, i2, z);
        operands[0].columnInserted(i, i2, z);
    }

    @Override
    public void columnRemoved(int i, int i2, boolean z) {
        ParseItem[] operands = getOperands();
        operands[1].columnRemoved(i, i2, z);
        operands[0].columnRemoved(i, i2, z);
    }

    @Override
    public void rowInserted(int i, int i2, boolean z) {
        ParseItem[] operands = getOperands();
        operands[1].rowInserted(i, i2, z);
        operands[0].rowInserted(i, i2, z);
    }

    @Override
    public void rowRemoved(int i, int i2, boolean z) {
        ParseItem[] operands = getOperands();
        operands[1].rowRemoved(i, i2, z);
        operands[0].rowRemoved(i, i2, z);
    }

    @Override
    public byte[] getBytes() {
        ParseItem[] operands = getOperands();
        byte[] bArr = new byte[0];
        int length = operands.length - 1;
        while (length >= 0) {
            byte[] bytes = operands[length].getBytes();
            byte[] bArr2 = new byte[bArr.length + bytes.length];
            System.arraycopy(bArr, 0, bArr2, 0, bArr.length);
            System.arraycopy(bytes, 0, bArr2, bArr.length, bytes.length);
            length--;
            bArr = bArr2;
        }
        byte[] bArr3 = new byte[bArr.length + 1];
        System.arraycopy(bArr, 0, bArr3, 0, bArr.length);
        bArr3[bArr.length] = getToken().getCode();
        return bArr3;
    }

    @Override
    public void handleImportedCellReferences() {
        ParseItem[] operands = getOperands();
        operands[0].handleImportedCellReferences();
        operands[1].handleImportedCellReferences();
    }
}