TextAttrConverter.java 4.04 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.sleng.TextAntiAliasingModeEnum
 *  com.scene7.is.sleng.TextAttrSpec
 *  com.scene7.is.sleng.TextAttrSpec$Builder
 *  com.scene7.is.sleng.TextFitModeEnum
 *  com.scene7.is.sleng.TextWrapModeEnum
 *  com.scene7.is.util.Converter
 *  com.scene7.is.util.StringMerger
 *  com.scene7.is.util.collections.CollectionUtil
 *  com.scene7.is.util.collections.MapEntry
 *  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.DoubleConverter
 *  com.scene7.is.util.text.converters.EnumConverter
 *  org.apache.commons.beanutils.ConversionException
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.parsers;

import com.scene7.is.sleng.TextAntiAliasingModeEnum;
import com.scene7.is.sleng.TextAttrSpec;
import com.scene7.is.sleng.TextFitModeEnum;
import com.scene7.is.sleng.TextWrapModeEnum;
import com.scene7.is.util.Converter;
import com.scene7.is.util.StringMerger;
import com.scene7.is.util.collections.CollectionUtil;
import com.scene7.is.util.collections.MapEntry;
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.DoubleConverter;
import com.scene7.is.util.text.converters.EnumConverter;
import java.util.Map;
import org.apache.commons.beanutils.ConversionException;
import org.jetbrains.annotations.NotNull;

public class TextAttrConverter
extends Converter<String, TextAttrSpec> {
    private static final Converter<String, TextAttrSpec> INSTANCE = new TextAttrConverter();
    private static final Converter<String, TextAntiAliasingModeEnum> ANTIALIAS_CONVERTER = EnumConverter.enumConverter(TextAntiAliasingModeEnum.class, (boolean)false);
    private static final Converter<String, TextFitModeEnum> FITMODE_CONVERTER = EnumConverter.enumConverter(TextFitModeEnum.class, (boolean)false);
    private static final Converter<String, TextWrapModeEnum> WRAPMODE_CONVERTER = EnumConverter.enumConverter(TextWrapModeEnum.class, (boolean)false, (Map)CollectionUtil.mapOf((MapEntry[])new MapEntry[]{CollectionUtil.mapEntry((Object)"WRAPNB", (Object)TextWrapModeEnum.WRAP_ON_WORD)}));

    public static Converter<String, TextAttrSpec> textAttrConverter() {
        return INSTANCE;
    }

    @NotNull
    public TextAttrSpec convert(@NotNull String value) throws ConversionException {
        TextAttrSpec defaultValue = TextAttrSpec.textAttrSpec();
        TextAttrSpec.Builder result = new TextAttrSpec.Builder();
        try {
            ListParamAccess list = new ListParamAccess(value);
            result.setDpi(((Double)list.getCustom("dpi", (Object)defaultValue.dpi, DoubleConverter.positiveDoubleConverter())).doubleValue());
            result.setAntialias((TextAntiAliasingModeEnum)list.getCustom("antiAliasing", (Object)defaultValue.antialias, ANTIALIAS_CONVERTER));
            result.setFitMode((TextFitModeEnum)list.getCustom("resMode", (Object)defaultValue.fitMode, FITMODE_CONVERTER));
            result.setWrapMode((TextWrapModeEnum)list.getCustom("wordWrap", (Object)defaultValue.wrapMode, WRAPMODE_CONVERTER));
            return result.getProduct();
        }
        catch (ParameterException e) {
            throw new ConversionException((Throwable)new ParsingException(4, value, (Throwable)e));
        }
    }

    @NotNull
    public String revert(@NotNull TextAttrSpec src) throws ConversionException {
        StringMerger merger = new StringMerger(",");
        merger.append((String)DoubleConverter.positiveDoubleConverter().revert((Object)src.dpi));
        merger.append((String)ANTIALIAS_CONVERTER.revert((Object)src.antialias));
        merger.append((String)FITMODE_CONVERTER.revert((Object)src.fitMode));
        merger.append((String)WRAPMODE_CONVERTER.revert((Object)src.wrapMode));
        return merger.toString();
    }

    private TextAttrConverter() {
        super(String.class, TextAttrSpec.class);
    }
}