FvctxUtil.java 3.33 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.provider.ImageSet
 *  com.scene7.is.provider.ImageSet$Builder
 *  com.scene7.is.provider.ImageSetItem
 *  com.scene7.is.provider.ImageSetItem$Builder
 *  com.scene7.is.util.Converter
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.fvctx;

import com.scene7.is.provider.ImageSet;
import com.scene7.is.provider.ImageSetItem;
import com.scene7.is.ps.provider.parsers.ImageSetConverter;
import com.scene7.is.util.Converter;
import java.util.List;
import org.jetbrains.annotations.NotNull;

public class FvctxUtil {
    private static Converter<String, ImageSet> imageSetConverter = ImageSetConverter.imageSetConverter();
    public static boolean removeEmptyFrames = true;

    static ImageSet filterEmptyFrames(ImageSet src) {
        if (removeEmptyFrames) {
            boolean validFrame = true;
            ImageSet.Builder result = new ImageSet.Builder();
            for (ImageSetItem item : src.items) {
                if (item.separator != ',') {
                    if (!validFrame) continue;
                    result.items.add(item);
                    continue;
                }
                if (item.asset == null) {
                    validFrame = true;
                    result.items.add(item);
                    continue;
                }
                String ass = item.asset;
                if (FvctxUtil.hasBraces(item.asset)) {
                    ImageSet parsed = (ImageSet)imageSetConverter.convert((Object)FvctxUtil.stripBraces(ass));
                    ImageSet filtered = FvctxUtil.filterEmptyFrames(parsed);
                    ass = (String)imageSetConverter.revert((Object)filtered);
                    if (!ass.isEmpty()) {
                        ImageSetItem.Builder builder = new ImageSetItem.Builder(item);
                        if (item.asset.charAt(0) == '{') {
                            builder.asset = "{" + ass + "}";
                        } else if (item.asset.charAt(0) == '(') {
                            builder.asset = "(" + ass + ")";
                        } else {
                            throw new AssertionError((Object)("Unexpected character in item: " + item.asset));
                        }
                        validFrame = true;
                        result.items.add(builder.getProduct());
                        continue;
                    }
                    validFrame = false;
                    continue;
                }
                if (!ass.isEmpty()) {
                    validFrame = true;
                    result.items.add(item);
                    continue;
                }
                validFrame = false;
            }
            return result.getProduct();
        }
        return src;
    }

    public static boolean hasBraces(@NotNull String value) {
        if (value.isEmpty()) {
            return false;
        }
        boolean hasBraces = value.charAt(0) == '{' && value.charAt(value.length() - 1) == '}';
        boolean hasParen = value.charAt(0) == '(' && value.charAt(value.length() - 1) == ')';
        return hasBraces || hasParen;
    }

    public static String stripBraces(@NotNull String value) {
        assert (FvctxUtil.hasBraces(value));
        return value.substring(1, value.length() - 1);
    }

    private FvctxUtil() {
    }
}