001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.mappaint.mapcss;
003
004import org.openstreetmap.josm.gui.mappaint.Environment;
005
006/**
007 * A MapCSS Expression.
008 *
009 * Can be evaluated in a certain {@link Environment}. Usually takes
010 * parameters, that are also Expressions and have to be evaluated first.
011 */
012public interface Expression {
013    /**
014     * Evaluate this expression.
015     * @param env The environment
016     * @return the result of the evaluation, can be a {@link java.util.List}, String or any
017     * primitive type or wrapper classes of a primitive type.
018     */
019    Object evaluate(Environment env);
020}