UnsharpMaskConverter.java 3.01 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.util.Converter
 *  com.scene7.is.util.StringMerger
 *  com.scene7.is.util.text.ParameterException
 *  com.scene7.is.util.text.ParsingException
 *  com.scene7.is.util.text.access.ListParamAccess
 *  com.scene7.is.util.text.converters.BooleanConverter
 *  com.scene7.is.util.text.converters.DoubleConverter
 *  org.apache.commons.beanutils.ConversionException
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.parsers;

import com.scene7.is.ps.provider.UnsharpMaskSpec;
import com.scene7.is.util.Converter;
import com.scene7.is.util.StringMerger;
import com.scene7.is.util.text.ParameterException;
import com.scene7.is.util.text.ParsingException;
import com.scene7.is.util.text.access.ListParamAccess;
import com.scene7.is.util.text.converters.BooleanConverter;
import com.scene7.is.util.text.converters.DoubleConverter;
import org.apache.commons.beanutils.ConversionException;
import org.jetbrains.annotations.NotNull;

public class UnsharpMaskConverter
extends Converter<String, UnsharpMaskSpec> {
    private static final Converter<String, Double> AMOUNT_CONVERTER = DoubleConverter.doubleConverter((double)0.0, (double)5.0);
    private static final Converter<String, Double> RADIUS_CONVERTER = DoubleConverter.doubleConverter((double)0.0, (double)250.0);
    private static final Converter<String, Double> THRESHOLD_CONVERTER = DoubleConverter.doubleConverter((double)0.0, (double)255.0);
    private static final Converter<String, UnsharpMaskSpec> INSTANCE = new UnsharpMaskConverter();

    public static Converter<String, UnsharpMaskSpec> unsharpMaskConverter() {
        return INSTANCE;
    }

    @NotNull
    public UnsharpMaskSpec convert(@NotNull String value) throws ConversionException {
        try {
            ListParamAccess list = new ListParamAccess(value);
            return UnsharpMaskSpec.builder().setAmount((Double)list.getCustom("amount", AMOUNT_CONVERTER)).setRadius((Double)list.getCustom("radius", (Object)0.0, RADIUS_CONVERTER)).setThreshold((Double)list.getCustom("threshold", (Object)0.0, THRESHOLD_CONVERTER)).setLightnessOnly((Boolean)list.getCustom("monochrome", (Object)false, BooleanConverter.booleanConverter())).getProduct();
        }
        catch (ParameterException e) {
            throw new ConversionException((Throwable)new ParsingException(4, value, (Throwable)e));
        }
    }

    @NotNull
    public String revert(@NotNull UnsharpMaskSpec src) throws ConversionException {
        StringMerger merger = new StringMerger(",");
        merger.append((String)AMOUNT_CONVERTER.revert((Object)src.amount));
        merger.append((String)RADIUS_CONVERTER.revert((Object)src.radius));
        merger.append((String)THRESHOLD_CONVERTER.revert((Object)src.threshold));
        merger.append((String)BooleanConverter.booleanConverter().revert((Object)src.lightnessOnly));
        return merger.toString();
    }

    private UnsharpMaskConverter() {
        super(String.class, UnsharpMaskSpec.class);
    }
}