diff options
Diffstat (limited to 'platform/android/src/style/layers/layer.cpp')
-rw-r--r-- | platform/android/src/style/layers/layer.cpp | 87 |
1 files changed, 5 insertions, 82 deletions
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp index 5726873f40..bb543a7639 100644 --- a/platform/android/src/style/layers/layer.cpp +++ b/platform/android/src/style/layers/layer.cpp @@ -109,20 +109,6 @@ namespace android { } } - struct SetFilterEvaluator { - style::Filter filter; - - void operator()(style::BackgroundLayer&) { Log::Warning(mbgl::Event::JNI, "BackgroundLayer doesn't support filters"); } - void operator()(style::CustomLayer&) { Log::Warning(mbgl::Event::JNI, "CustomLayer doesn't support filters"); } - void operator()(style::RasterLayer&) { Log::Warning(mbgl::Event::JNI, "RasterLayer doesn't support filters"); } - void operator()(style::HillshadeLayer&) { Log::Warning(mbgl::Event::JNI, "HillshadeLayer doesn't support filters"); } - - template <class LayerType> - void operator()(LayerType& layer) { - layer.setFilter(filter); - } - }; - void Layer::setFilter(jni::JNIEnv& env, const jni::Array<jni::Object<>>& jfilter) { using namespace mbgl::style; using namespace mbgl::style::conversion; @@ -134,31 +120,14 @@ namespace android { return; } - layer.accept(SetFilterEvaluator {std::move(*converted)}); + layer.setFilter(std::move(*converted)); } - struct GetFilterEvaluator { - mbgl::style::Filter noop(std::string layerType) { - Log::Warning(mbgl::Event::JNI, "%s doesn't support filter", layerType.c_str()); - return {}; - } - - mbgl::style::Filter operator()(style::BackgroundLayer&) { return noop("BackgroundLayer"); } - mbgl::style::Filter operator()(style::CustomLayer&) { return noop("CustomLayer"); } - mbgl::style::Filter operator()(style::RasterLayer&) { return noop("RasterLayer"); } - mbgl::style::Filter operator()(style::HillshadeLayer&) { return noop("HillshadeLayer"); } - - template <class LayerType> - mbgl::style::Filter operator()(LayerType& layer) { - return layer.getFilter(); - } - }; - jni::Local<jni::Object<gson::JsonElement>> Layer::getFilter(jni::JNIEnv& env) { using namespace mbgl::style; using namespace mbgl::style::conversion; - Filter filter = layer.accept(GetFilterEvaluator()); + Filter filter = layer.getFilter(); if (filter.expression) { mbgl::Value expressionValue = (*filter.expression)->serialize(); return gson::JsonElement::New(env, expressionValue); @@ -167,62 +136,16 @@ namespace android { } } - struct SetSourceLayerEvaluator { - std::string sourceLayer; - - void operator()(style::BackgroundLayer&) { Log::Warning(mbgl::Event::JNI, "BackgroundLayer doesn't support source layer"); } - void operator()(style::CustomLayer&) { Log::Warning(mbgl::Event::JNI, "CustomLayer doesn't support source layer"); } - void operator()(style::RasterLayer&) { Log::Warning(mbgl::Event::JNI, "RasterLayer doesn't support source layer"); } - void operator()(style::HillshadeLayer&) { Log::Warning(mbgl::Event::JNI, "HillshadeLayer doesn't support source layer"); } - - template <class LayerType> - void operator()(LayerType& layer) { - layer.setSourceLayer(sourceLayer); - } - }; - void Layer::setSourceLayer(jni::JNIEnv& env, const jni::String& sourceLayer) { - layer.accept(SetSourceLayerEvaluator {jni::Make<std::string>(env, sourceLayer)}); + layer.setSourceLayer(jni::Make<std::string>(env, sourceLayer)); } - struct GetSourceLayerEvaluator { - std::string noop(std::string layerType) { - Log::Warning(mbgl::Event::JNI, "%s doesn't support source layer", layerType.c_str()); - return {}; - } - - std::string operator()(style::BackgroundLayer&) { return noop("BackgroundLayer"); } - std::string operator()(style::CustomLayer&) { return noop("CustomLayer"); } - std::string operator()(style::RasterLayer&) { return noop("RasterLayer"); } - std::string operator()(style::HillshadeLayer&) { return noop("HillshadeLayer"); } - - template <class LayerType> - std::string operator()(LayerType& layer) { - return layer.getSourceLayer(); - } - }; - jni::Local<jni::String> Layer::getSourceLayer(jni::JNIEnv& env) { - return jni::Make<jni::String>(env, layer.accept(GetSourceLayerEvaluator())); + return jni::Make<jni::String>(env, layer.getSourceLayer()); } - struct GetSourceIdEvaluator { - std::string noop(std::string layerType) { - Log::Warning(mbgl::Event::JNI, "%s doesn't support get source id", layerType.c_str()); - return {}; - } - - std::string operator()(style::BackgroundLayer&) { return noop("BackgroundLayer"); } - std::string operator()(style::CustomLayer&) { return noop("CustomLayer"); } - - template <class LayerType> - std::string operator()(LayerType& layer) { - return layer.getSourceID(); - } - }; - jni::Local<jni::String> Layer::getSourceId(jni::JNIEnv& env) { - return jni::Make<jni::String>(env, layer.accept(GetSourceIdEvaluator())); + return jni::Make<jni::String>(env, layer.getSourceID()); } jni::jfloat Layer::getMinZoom(jni::JNIEnv&){ |