/*
* Copyright (C) 2012.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package uk.me.parabola.mkgmap.osmstyle.function;
import uk.me.parabola.mkgmap.reader.osm.Element;
import uk.me.parabola.mkgmap.reader.osm.TagDict;
/**
* Get the value of a tag from the element.
*
* In the style language: highway = primary
* This is effectively a shorthand for: get_tag(highway) = primary
*
* @author Steve Ratcliffe
*/
public class GetTagFunction extends StyleFunction {
short tagKey;
public GetTagFunction(String value) {
super(value);
tagKey = TagDict.getInstance().xlate(value);
}
public String value(Element el) {
return el.getTag(tagKey);
}
/**
* Since this contains a tag value it can potentially be used to index the whole rule,
* so return true here.
*/
public boolean isIndexable() {
return true;
}
public String toString() {
return "$" + getKeyValue();
}
}