RequestSlengAdapter.java 7.22 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.sleng.BlendModeEnum
 *  com.scene7.is.sleng.CacheStorageEnum
 *  com.scene7.is.sleng.ColorProfileSet
 *  com.scene7.is.sleng.ColorSpec
 *  com.scene7.is.sleng.ImageAccessException
 *  com.scene7.is.sleng.Layer
 *  com.scene7.is.sleng.MergeOrderEnum
 *  com.scene7.is.sleng.PathAttrSpec
 *  com.scene7.is.sleng.Sleng
 *  com.scene7.is.sleng.SlengCodeGenerator
 *  com.scene7.is.sleng.SlengDelegate
 *  com.scene7.is.sleng.Text
 *  com.scene7.is.sleng.TextAttrSpec
 *  com.scene7.is.util.Size
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider;

import com.scene7.is.sleng.BlendModeEnum;
import com.scene7.is.sleng.CacheStorageEnum;
import com.scene7.is.sleng.ColorProfileSet;
import com.scene7.is.sleng.ColorSpec;
import com.scene7.is.sleng.ImageAccessException;
import com.scene7.is.sleng.Layer;
import com.scene7.is.sleng.MergeOrderEnum;
import com.scene7.is.sleng.PathAttrSpec;
import com.scene7.is.sleng.Sleng;
import com.scene7.is.sleng.SlengCodeGenerator;
import com.scene7.is.sleng.SlengDelegate;
import com.scene7.is.sleng.Text;
import com.scene7.is.sleng.TextAttrSpec;
import com.scene7.is.util.Size;
import java.net.URL;
import org.jetbrains.annotations.NotNull;

public class RequestSlengAdapter
extends SlengDelegate {
    private static final int UNDEFINED = Integer.MIN_VALUE;
    private final SlengCodeGenerator generator;
    int offsetToBaseLayer = Integer.MIN_VALUE;
    int offsetToGlobalBase = Integer.MIN_VALUE;
    int offsetToWorkLayer = Integer.MIN_VALUE;

    public RequestSlengAdapter(SlengCodeGenerator delegee) {
        super((Sleng)delegee);
        this.generator = delegee;
    }

    int globalBaseOffset() {
        return this.offsetToGlobalBase;
    }

    int baseLayerOffset() {
        return this.offsetToBaseLayer;
    }

    int workLayerOffset() {
        return this.offsetToWorkLayer;
    }

    void setBaseLayer() {
        this.offsetToBaseLayer = 0;
    }

    void setWorkLayer() {
        this.offsetToWorkLayer = 0;
    }

    void setGlobalSpace() {
        this.offsetToGlobalBase = 0;
    }

    public void openText(Size size, ColorSpec layerColor, ColorSpec bgColor, Text text, TextAttrSpec attr, PathAttrSpec pathAttr, ColorProfileSet inputProfiles, double xScale, double yScale) throws ImageAccessException {
        super.openText(size, layerColor, bgColor, text, attr, pathAttr, inputProfiles, xScale, yScale);
        this.addLayer();
    }

    public void openFxg(@NotNull String path, @NotNull String query, @NotNull byte[] versionKey) throws ImageAccessException {
        super.openFxg(path, query, versionKey);
        this.addLayer();
    }

    public void openImage(String path) throws ImageAccessException {
        super.openImage(path);
        this.addLayer();
    }

    public void openImage(String path, int width, int height) throws ImageAccessException {
        super.openImage(path, width, height);
        this.addLayer();
    }

    public void openURL(URL url, boolean validation) throws ImageAccessException {
        super.openURL(url, validation);
        this.addLayer();
    }

    public void openSolid(double width, double height, ColorSpec layerColor) throws ImageAccessException {
        super.openSolid(width, height, layerColor);
        this.addLayer();
    }

    public void embed(byte[] code, CacheStorageEnum cacheStorage, boolean cachePyramidLevels) throws ImageAccessException {
        super.embed(code, cacheStorage, cachePyramidLevels);
        this.addLayer();
    }

    public void insertLayer(Layer layer) {
        super.insertLayer(layer);
        this.addLayer();
    }

    public void dup() throws ImageAccessException {
        super.dup();
        this.addLayer();
    }

    public void merge(@NotNull MergeOrderEnum order, @NotNull BlendModeEnum blend, boolean subPixel) throws ImageAccessException {
        super.merge(order, blend, subPixel);
        this.removeLayer();
    }

    public void mask(boolean invert) throws ImageAccessException {
        super.mask(invert);
        this.removeLayer();
    }

    public void drop() throws ImageAccessException {
        super.drop();
        this.removeLayer();
    }

    public void swap() {
        super.swap();
        if (this.offsetToBaseLayer == 0) {
            this.offsetToBaseLayer = 1;
        } else if (this.offsetToBaseLayer == 1) {
            this.offsetToBaseLayer = 0;
        }
        if (this.offsetToWorkLayer == 0) {
            this.offsetToWorkLayer = 1;
        } else if (this.offsetToWorkLayer == 1) {
            this.offsetToWorkLayer = 0;
        }
    }

    public void peekLayer(int offset) {
        super.peekLayer(offset);
        if (offset == this.offsetToBaseLayer) {
            this.offsetToBaseLayer = 0;
        } else if (this.offsetToBaseLayer >= 0 && offset < 0) {
            ++this.offsetToBaseLayer;
        } else if (this.offsetToBaseLayer >= 0 && offset > this.offsetToBaseLayer) {
            ++this.offsetToBaseLayer;
        } else if (this.offsetToBaseLayer < 0 && offset > this.offsetToBaseLayer) {
            ++this.offsetToBaseLayer;
        }
        if (offset == this.offsetToWorkLayer) {
            this.offsetToWorkLayer = 0;
        } else if (this.offsetToWorkLayer >= 0 && offset < 0) {
            ++this.offsetToWorkLayer;
        } else if (this.offsetToWorkLayer >= 0 && offset > this.offsetToWorkLayer) {
            ++this.offsetToWorkLayer;
        } else if (this.offsetToWorkLayer < 0 && offset > this.offsetToWorkLayer) {
            ++this.offsetToWorkLayer;
        }
    }

    public void setLayer(int offset) {
        super.setLayer(offset);
        this.offsetToBaseLayer -= offset;
        this.offsetToWorkLayer -= offset;
    }

    public void cloneLayer(int offset) throws ImageAccessException {
        super.cloneLayer(offset);
        this.addLayer();
    }

    public void openBase() {
        super.openBase();
        this.addBase();
    }

    public void dropBase() {
        super.dropBase();
        this.removeBase();
    }

    public void popBase() {
        super.popBase();
        this.removeBase();
    }

    public void pushBase() {
        super.pushBase();
        this.addBase();
    }

    public byte[] getCode() {
        return this.generator.getCode();
    }

    private void addLayer() {
        if (this.offsetToBaseLayer >= 0) {
            ++this.offsetToBaseLayer;
        }
        if (this.offsetToWorkLayer >= 0) {
            ++this.offsetToWorkLayer;
        }
    }

    private void removeLayer() {
        if (this.offsetToBaseLayer > 0) {
            --this.offsetToBaseLayer;
        } else if (this.offsetToBaseLayer == 0) {
            this.offsetToBaseLayer = Integer.MIN_VALUE;
        }
        if (this.offsetToWorkLayer > 0) {
            --this.offsetToWorkLayer;
        } else if (this.offsetToWorkLayer == 0) {
            this.offsetToWorkLayer = Integer.MIN_VALUE;
        }
    }

    private void addBase() {
        if (this.offsetToGlobalBase >= 0) {
            ++this.offsetToGlobalBase;
        }
    }

    private void removeBase() {
        if (this.offsetToGlobalBase > 0) {
            --this.offsetToGlobalBase;
        } else if (this.offsetToGlobalBase == 0) {
            this.offsetToGlobalBase = Integer.MIN_VALUE;
        }
    }
}