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

org.openl.rules.calc.element.AnyCellValue Maven / Gradle / Ivy

package org.openl.rules.calc.element;

import org.openl.meta.DoubleValue;
import org.openl.meta.IMetaHolder;
import org.openl.meta.IMetaInfo;
import org.openl.meta.StringValue;
import org.openl.rules.convertor.String2DoubleConvertor;

public class AnyCellValue implements IMetaHolder {

    private DoubleValue doubleValue;
    private StringValue stringValue;

    public AnyCellValue(DoubleValue doubleValue) {
        this.doubleValue = doubleValue;
    }

    public AnyCellValue(String source) {

        try {
            double value = (Double) new String2DoubleConvertor().parse(source, null, null);
            this.doubleValue = new DoubleValue(value);
        } catch (Throwable t) {
            this.stringValue = new StringValue(source);
        }
    }

    public DoubleValue getDoubleValue() {
        return doubleValue;
    }

    public IMetaInfo getMetaInfo() {
        return null;
    }

    public Object getValue() {
        return stringValue == null ? doubleValue : stringValue;
    }

    public void setMetaInfo(IMetaInfo info) {

        if (doubleValue != null) {
            doubleValue.setMetaInfo(info);
        } else if (stringValue != null) {
            stringValue.setMetaInfo(info);
        }
    }

    @Override
    public String toString() {
        return doubleValue != null ? doubleValue.toString() : String.valueOf(stringValue);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy