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

net.intelie.liverig.plugin.widgets.DisplayUnitPipesFunctions Maven / Gradle / Ivy

The newest version!
package net.intelie.liverig.plugin.widgets;

import com.google.common.base.Strings;
import net.intelie.liverig.plugin.curves.CalculatedCurves;
import net.intelie.liverig.plugin.curves.Curve;
import net.intelie.liverig.plugin.curves.StandardCurves;
import net.intelie.liverig.units.UnitConverterWithFixup;
import net.intelie.pipes.Export;
import net.intelie.pipes.Inject;
import net.intelie.pipes.types.Type;
import org.jetbrains.annotations.Nullable;

import java.util.Map;

public class DisplayUnitPipesFunctions {

    private final DisplayUnitsService displayUnitsService;
    private final StandardCurves standardCurves;
    private final CalculatedCurves calculatedCurves;

    public DisplayUnitPipesFunctions(DisplayUnitsService displayUnitsService, StandardCurves curves, CalculatedCurves calculatedCurves) {
        this.displayUnitsService = displayUnitsService;
        this.standardCurves = curves;
        this.calculatedCurves = calculatedCurves;
    }

    @Export
    public Double curve_display_unit_convert(@Inject("@@context->userConfig->displayUnitSetId") Object displayUnitSetid, Double value, String mnemonic) {
        Curve curve = getCurve(mnemonic);

        if (curve == null)
            return value;

        return curve_display_unit_convert(displayUnitSetid, value, mnemonic, curve.unit());
    }

    @Export
    public Double curve_display_unit_convert(@Inject("@@context->userConfig->displayUnitSetId") Object displayUnitSetId, Double value, String mnemonic, String sourceUnit) {
        if (displayUnitSetId == null)
            return value;

        String id = Type.STRING.cast(displayUnitSetId);
        DisplayUnit displayUnit = displayUnitsService.get(id);

        if (displayUnit == null) {
            return value;
        }

        Map displayUnitDataForMnemonic = displayUnitsService.getDisplayUnitDataForMnemonic(id, mnemonic);

        if (displayUnitDataForMnemonic == null) {
            return value;
        }

        String unit = Type.STRING.cast(displayUnitDataForMnemonic.get("unit"));

        if (Strings.isNullOrEmpty(unit)) {
            return value;
        }

        return UnitConverterWithFixup.convert(value, sourceUnit, unit);
    }

    @Export
    public Map displayUnitDataForMnemonic(@Inject("@@context->userConfig->displayUnitSetId") Object displayUnitSetId, String mnemonic) {
        if (displayUnitSetId == null)
            return null;

        String id = Type.STRING.cast(displayUnitSetId);

        DisplayUnit displayUnit = displayUnitsService.get(id);

        if (displayUnit == null) {
            return null;
        }

        return displayUnitsService.getDisplayUnitDataForMnemonic(id, mnemonic);
    }

    @Export
    public String displayUnitSetId(@Inject("@@context->userConfig->displayUnitSetId") Object displayUnitSetId) {
        return Type.STRING.cast(displayUnitSetId);
    }


    @Nullable
    private Curve getCurve(String mnemonic) {
        Curve curve = standardCurves.getCurve(mnemonic);

        if (curve == null)
            curve = calculatedCurves.getCurve(mnemonic);

        return curve;
    }


}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy