diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyValue.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyValue.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyValue.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyValue.java new file mode 100644 index 0000000000..204c154743 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyValue.java @@ -0,0 +1,56 @@ +package com.mapbox.mapboxsdk.style.layers; + +import android.support.annotation.Nullable; +import android.util.Log; + +/** + * Properties for Layer + */ +public class PropertyValue<T> { + private static final String TAG = PropertyValue.class.getSimpleName(); + + private final Object value; + + /* package */ PropertyValue(Object value) { + this.value = value; + } + + public boolean isNull() { + return value == null; + } + + public boolean isFunction() { + return !isNull() && value instanceof Function; + } + + public boolean isValue() { + return !isNull() && !isFunction(); + } + + @Nullable + public Function<T> getFunction() { + if (isFunction()) { + //noinspection unchecked + return (Function<T>) value; + } else { + Log.w(TAG, "not a function, try value"); + return null; + } + } + + @Nullable + public T getValue() { + if (isValue()) { + //noinspection unchecked + return (T) value; + } else { + Log.w(TAG, "not a value, try function"); + return null; + } + } + + @Override + public String toString() { + return String.format("%s (%s)", getClass().getSimpleName(), value != null ? value.getClass().getSimpleName() : null); + } +} |