IppAteTextFrame.java 9.06 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.scene7.is.ipp.messages;

import com.scene7.is.ipp.messages.Ipp;
import com.scene7.is.ipp.messages.IppAteFlowType;
import com.scene7.is.ipp.messages.IppAteLayoutType;
import com.scene7.is.ipp.messages.IppBool;
import com.scene7.is.ipp.messages.IppByte;
import com.scene7.is.ipp.messages.IppDouble;
import com.scene7.is.ipp.messages.IppInt;
import com.scene7.is.ipp.messages.IppLongString;
import com.scene7.is.ipp.messages.IppMat3x2;
import com.scene7.is.ipp.messages.Offset;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class IppAteTextFrame {
    private int layoutType_;
    private int flowType_;
    private String shape_;
    private String excludeShape_;
    private IppMat3x2 textFlowMatrix_;
    private double textRangeStart_;
    private double textRangeEnd_;
    private boolean textFlip_;

    public IppAteTextFrame(int layoutType, int flowType, String shape, String excludeShape, IppMat3x2 textFlowMatrix, double textRangeStart, double textRangeEnd, boolean textFlip) {
        this.layoutType_ = layoutType;
        this.flowType_ = flowType;
        this.shape_ = shape;
        this.excludeShape_ = excludeShape;
        this.textFlowMatrix_ = textFlowMatrix;
        this.textRangeStart_ = textRangeStart;
        this.textRangeEnd_ = textRangeEnd;
        this.textFlip_ = textFlip;
    }

    public String toString() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("[");
        buffer.append("layoutType: ").append(String.valueOf(this.layoutType_)).append(" ");
        buffer.append("flowType: ").append(String.valueOf(this.flowType_)).append(" ");
        buffer.append("shape: ").append(String.valueOf(this.shape_)).append(" ");
        buffer.append("excludeShape: ").append(String.valueOf(this.excludeShape_)).append(" ");
        buffer.append("textFlowMatrix: ").append(String.valueOf(this.textFlowMatrix_)).append(" ");
        buffer.append("textRangeStart: ").append(String.valueOf(this.textRangeStart_)).append(" ");
        buffer.append("textRangeEnd: ").append(String.valueOf(this.textRangeEnd_)).append(" ");
        buffer.append("textFlip: ").append(String.valueOf(this.textFlip_)).append(" ");
        buffer.append("]");
        return buffer.toString();
    }

    public boolean equals(Object o) {
        if (!(o instanceof IppAteTextFrame)) {
            return false;
        }
        IppAteTextFrame e = (IppAteTextFrame)o;
        if (this.layoutType_ != e.layoutType_) {
            return false;
        }
        if (this.flowType_ != e.flowType_) {
            return false;
        }
        if (!this.shape_.equals(e.shape_)) {
            return false;
        }
        if (!this.excludeShape_.equals(e.excludeShape_)) {
            return false;
        }
        if (!this.textFlowMatrix_.equals(e.textFlowMatrix_)) {
            return false;
        }
        if (this.textRangeStart_ != e.textRangeStart_) {
            return false;
        }
        if (this.textRangeEnd_ != e.textRangeEnd_) {
            return false;
        }
        if (this.textFlip_ != e.textFlip_) {
            return false;
        }
        return true;
    }

    public static IppAteTextFrame Unstuff(byte[] arr, Offset arrayPos) {
        Ipp.Assert((arrayPos.val & 7) == 0, "IppAteTextFrame align");
        int layoutType = IppInt.Unstuff(arr, arrayPos);
        int flowType = IppInt.Unstuff(arr, arrayPos);
        String shape = IppLongString.Unstuff(arr, arrayPos);
        String excludeShape = IppLongString.Unstuff(arr, arrayPos);
        IppMat3x2 textFlowMatrix = IppMat3x2.Unstuff(arr, arrayPos);
        double textRangeStart = IppDouble.Unstuff(arr, arrayPos);
        double textRangeEnd = IppDouble.Unstuff(arr, arrayPos);
        boolean textFlip = IppBool.Unstuff(arr, arrayPos);
        IppByte.UnstuffFixedArray(arr, arrayPos, 4);
        return new IppAteTextFrame(layoutType, flowType, shape, excludeShape, textFlowMatrix, textRangeStart, textRangeEnd, textFlip);
    }

    public static IppAteTextFrame[] UnstuffArray(byte[] arr, Offset arrayPos) {
        Ipp.Assert((arrayPos.val & 3) == 0, "IppAteTextFrame alignemt");
        int count = IppInt.Unstuff(arr, arrayPos);
        int size = IppInt.Unstuff(arr, arrayPos);
        Ipp.Assert(count == 0 || size >= 88, "IppAteTextFrame count");
        Offset roff = new Offset(IppInt.Unstuff(arr, arrayPos));
        Offset loff = new Offset(roff.val);
        IppAteTextFrame[] result = new IppAteTextFrame[count];
        for (int i = 0; i < count; ++i) {
            loff.val = roff.val;
            result[i] = IppAteTextFrame.Unstuff(arr, loff);
            roff.val += size;
        }
        return result;
    }

    public static IppAteTextFrame[] UnstuffFixedArray(byte[] arr, Offset arrayPos, int count) {
        IppAteTextFrame[] result = new IppAteTextFrame[count];
        for (int i = 0; i < count; ++i) {
            result[i] = IppAteTextFrame.Unstuff(arr, arrayPos);
        }
        return result;
    }

    public static void Stuff(byte[] arr, Offset arrayPos, Offset varPos, IppAteTextFrame val) {
        Ipp.Assert((arrayPos.val & 7) == 0, "IppAteTextFrame align");
        if (val != null) {
            IppInt.Stuff(arr, arrayPos, varPos, val.layoutType());
            IppInt.Stuff(arr, arrayPos, varPos, val.flowType());
            IppLongString.Stuff(arr, arrayPos, varPos, val.shape());
            IppLongString.Stuff(arr, arrayPos, varPos, val.excludeShape());
            IppMat3x2.Stuff(arr, arrayPos, varPos, val.textFlowMatrix());
            IppDouble.Stuff(arr, arrayPos, varPos, val.textRangeStart());
            IppDouble.Stuff(arr, arrayPos, varPos, val.textRangeEnd());
            IppBool.Stuff(arr, arrayPos, varPos, val.textFlip());
            Ipp.StuffNullBytes(arr, arrayPos, 4);
        } else {
            Ipp.StuffNullBytes(arr, arrayPos, 88);
        }
    }

    public static void StuffArray(byte[] arr, Offset arrayPos, Offset varPos, IppAteTextFrame[] val) {
        Ipp.Assert((arrayPos.val & 3) == 0, "IppAteTextFrame stuffarray align");
        int len = val != null ? val.length : 0;
        IppInt.Stuff(arr, arrayPos, varPos, len);
        IppInt.Stuff(arr, arrayPos, varPos, 88);
        Ipp.StuffOffset(arr, arrayPos, varPos, len > 0 ? 8 : 1);
        Offset varvarPos = new Offset(varPos.val + 88 * len);
        for (int i = 0; i < len; ++i) {
            IppAteTextFrame.Stuff(arr, varPos, varvarPos, val[i]);
        }
        varPos.val = varvarPos.val;
    }

    public static void StuffFixedArray(byte[] arr, Offset arrayPos, Offset varPos, int count, IppAteTextFrame[] val) {
        Ipp.Assert(val.length == count, "IppAteTextFrame count");
        for (int i = 0; i < count; ++i) {
            IppAteTextFrame.Stuff(arr, arrayPos, varPos, val[i]);
        }
    }

    public static void Print(Writer tf, String label, IppAteTextFrame it) throws IOException {
        String ll = label + "IppAteTextFrame: ";
        if (it == null) {
            tf.write(ll + "NULL!!\n");
            return;
        }
        tf.write(ll + "\n");
        IppAteLayoutType.Print(tf, ll + "layoutType: ", it.layoutType());
        IppAteFlowType.Print(tf, ll + "flowType: ", it.flowType());
        IppLongString.Print(tf, ll + "shape: ", it.shape());
        IppLongString.Print(tf, ll + "excludeShape: ", it.excludeShape());
        IppMat3x2.Print(tf, ll + "textFlowMatrix: ", it.textFlowMatrix());
        IppDouble.Print(tf, ll + "textRangeStart: ", it.textRangeStart());
        IppDouble.Print(tf, ll + "textRangeEnd: ", it.textRangeEnd());
        IppBool.Print(tf, ll + "textFlip: ", it.textFlip());
    }

    public static void PrintArray(Writer tf, String label, IppAteTextFrame[] it) throws IOException {
        String ll = label + "IppAteTextFrame Array, length: ";
        tf.write(ll);
        if (it == null) {
            tf.write("NULL!!!\n");
            return;
        }
        tf.write("" + it.length + "\n");
        for (int i = 0; i < it.length; ++i) {
            ll = label + "IppAteTextFrame[" + String.valueOf(i) + "]: ";
            IppAteTextFrame.Print(tf, ll, it[i]);
        }
    }

    public void adjustVarPos(Offset varPos) {
        try {
            varPos.val += this.shape_.getBytes("UTF-8").length + 1;
        }
        catch (UnsupportedEncodingException e) {
            throw new AssertionError(e);
        }
        try {
            varPos.val += this.excludeShape_.getBytes("UTF-8").length + 1;
        }
        catch (UnsupportedEncodingException e) {
            throw new AssertionError(e);
        }
    }

    public int layoutType() {
        return this.layoutType_;
    }

    public int flowType() {
        return this.flowType_;
    }

    public String shape() {
        return this.shape_;
    }

    public String excludeShape() {
        return this.excludeShape_;
    }

    public IppMat3x2 textFlowMatrix() {
        return this.textFlowMatrix_;
    }

    public double textRangeStart() {
        return this.textRangeStart_;
    }

    public double textRangeEnd() {
        return this.textRangeEnd_;
    }

    public boolean textFlip() {
        return this.textFlip_;
    }
}