001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.mappaint.mapcss;
003
004import java.util.Arrays;
005
006import org.openstreetmap.josm.gui.mappaint.Environment;
007import org.openstreetmap.josm.tools.CheckParameterUtil;
008
009/**
010 * Simple literal value, that does not depend on other expressions.
011 * @since 5705
012 */
013public class LiteralExpression implements Expression {
014    private final Object literal;
015
016    /**
017     * Constructs a new {@code LiteralExpression}.
018     * @param literal literal
019     */
020    public LiteralExpression(Object literal) {
021        CheckParameterUtil.ensureParameterNotNull(literal);
022        this.literal = literal;
023    }
024
025    @Override
026    public Object evaluate(Environment env) {
027        return literal;
028    }
029
030    @Override
031    public String toString() {
032        if (literal instanceof float[]) {
033            return Arrays.toString((float[]) literal);
034        }
035        return '<' + literal.toString() + '>';
036    }
037}