PathAttrConverter.java 3.18 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.sleng.PathAttrSpec
 *  com.scene7.is.sleng.PathAttrSpec$Builder
 *  com.scene7.is.sleng.TextPathFlowOrientationEnum
 *  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.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.PathAttrSpec;
import com.scene7.is.sleng.TextPathFlowOrientationEnum;
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.DoubleConverter;
import com.scene7.is.util.text.converters.EnumConverter;
import org.apache.commons.beanutils.ConversionException;
import org.jetbrains.annotations.NotNull;

public class PathAttrConverter
extends Converter<String, PathAttrSpec> {
    private static final Converter<String, PathAttrSpec> INSTANCE = new PathAttrConverter();
    private static final Converter<String, TextPathFlowOrientationEnum> FLOW_ORIENTATION_CONVERTER = EnumConverter.enumConverter(TextPathFlowOrientationEnum.class, (boolean)false);

    public static Converter<String, PathAttrSpec> pathAttrConverter() {
        return INSTANCE;
    }

    @NotNull
    public PathAttrSpec convert(@NotNull String value) throws ConversionException {
        PathAttrSpec defaultValue = PathAttrSpec.pathAttrSpec();
        PathAttrSpec.Builder result = new PathAttrSpec.Builder();
        try {
            ListParamAccess list = new ListParamAccess(value);
            result.setFlowOrientation((TextPathFlowOrientationEnum)list.getCustom("flowOrientation", (Object)defaultValue.flowOrientation, FLOW_ORIENTATION_CONVERTER));
            result.setStartRange(((Double)list.getCustom("startRange", (Object)defaultValue.startRange, DoubleConverter.fullRangeDoubleConverter())).doubleValue());
            result.setEndRange(((Double)list.getCustom("endRange", (Object)defaultValue.endRange, DoubleConverter.fullRangeDoubleConverter())).doubleValue());
            return result.getProduct();
        }
        catch (ParameterException e) {
            throw new ConversionException((Throwable)new ParsingException(4, value, (Throwable)e));
        }
    }

    @NotNull
    public String revert(@NotNull PathAttrSpec src) throws ConversionException {
        StringMerger merger = new StringMerger(",");
        merger.append((String)FLOW_ORIENTATION_CONVERTER.revert((Object)src.flowOrientation));
        merger.append((String)DoubleConverter.fullRangeDoubleConverter().revert((Object)src.startRange));
        merger.append((String)DoubleConverter.fullRangeDoubleConverter().revert((Object)src.endRange));
        return merger.toString();
    }

    private PathAttrConverter() {
        super(String.class, PathAttrSpec.class);
    }
}