All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.slieb.soy.converters.soydata.NullSafeConverter Maven / Gradle / Ivy

The newest version!
package org.slieb.soy.converters.soydata;

import com.google.template.soy.data.SoyData;
import com.google.template.soy.data.SoyValue;
import com.google.template.soy.data.restricted.NullData;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.function.Function;

public class NullSafeConverter implements Function {

    private final Function converter;

    public NullSafeConverter(@Nonnull Function converter) {
        this.converter = converter;
    }

    public Function getNestedConverter() {
        return converter;
    }

    @Override
    @Nonnull
    public SoyData apply(@Nullable Object from) {
        if (from != null) {
            return convertResult(converter.apply(from));
        } else {
            return NullData.INSTANCE;
        }
    }

    @Nonnull
    private SoyData convertResult(@Nullable SoyData from) {
        return from != null ? from : NullData.INSTANCE;
    }

    @Nonnull
    public static NullSafeConverter wrapConverterWithNullSafe(@Nonnull Function converter) {
        return new NullSafeConverter(converter);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy