[android] data driven style implementation
This commit is contained in:
committed by
John Firebaugh
parent
8a5bff8ee6
commit
f562ecdfc3
@@ -0,0 +1,50 @@
|
||||
package com.mapbox.mapboxsdk.style.functions;
|
||||
|
||||
import android.support.annotation.Keep;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.ExponentialStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.IntervalStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stop;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stops;
|
||||
|
||||
/**
|
||||
* Camera function. Functions that take camera properties as input (zoom for now)
|
||||
* <p>
|
||||
* Zoom functions allow the appearance of a map feature to change with map’s zoom level.
|
||||
* Zoom functions can be used to create the illusion of depth and control data density.
|
||||
* Each stop is an array with two elements: the first is a zoom level and the second is
|
||||
* a function output value.
|
||||
*
|
||||
* @param <I> the input type
|
||||
* @param <O> the output type
|
||||
* @see Function#zoom
|
||||
*/
|
||||
public class CameraFunction<I extends Number, O> extends Function<I, O> {
|
||||
|
||||
/**
|
||||
* Create an exponential camera function
|
||||
*
|
||||
* @param stops @see {@link com.mapbox.mapboxsdk.style.functions.stops.Stops#exponential(float, Stop[])}
|
||||
*/
|
||||
CameraFunction(@NonNull ExponentialStops<I, O> stops) {
|
||||
super(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an interval camera function
|
||||
*
|
||||
* @param stops @see {@link com.mapbox.mapboxsdk.style.functions.stops.Stops#interval(Stop[])}
|
||||
*/
|
||||
CameraFunction(@NonNull IntervalStops<I, O> stops) {
|
||||
super(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* JNI constructor
|
||||
*/
|
||||
@Keep
|
||||
private CameraFunction(Stops<I, O> stops) {
|
||||
super(stops);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.mapbox.mapboxsdk.style.functions;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.CompositeStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stops;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Composite functions combine {@link android.graphics.Camera} and {@link SourceFunction}s.
|
||||
* <p>
|
||||
* Composite functions allow the appearance of a map feature to change with both its
|
||||
* properties and zoom. Each stop is an array with two elements, the first is an object
|
||||
* with a property input value and a zoom, and the second is a function output value. Note
|
||||
* that support for property functions is not yet complete.
|
||||
*
|
||||
* @param <Z> the zoom type (usually Float)
|
||||
* @param <I> the input type (the feature property type)
|
||||
* @param <O> the output type (the property type)
|
||||
* @see Function#composite
|
||||
*/
|
||||
public class CompositeFunction<Z extends Number, I, O> extends Function<I, O> {
|
||||
|
||||
private final String property;
|
||||
private O defaultValue;
|
||||
|
||||
CompositeFunction(@NonNull String property,
|
||||
@NonNull CompositeStops<Z, I, O, ? extends Stops<I, O>> stops) {
|
||||
this(null, property, stops);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* JNI Constructor
|
||||
*/
|
||||
private CompositeFunction(@Nullable O defaultValue, @NonNull String property,
|
||||
@NonNull CompositeStops<Z, I, O, ? extends Stops<I, O>> stops) {
|
||||
super(stops);
|
||||
this.defaultValue = defaultValue;
|
||||
this.property = property;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param defaultValue the default value to use when no other applies
|
||||
* @return this (for chaining)
|
||||
*/
|
||||
public CompositeFunction<Z, I, O> withDefaultValue(O defaultValue) {
|
||||
this.defaultValue = defaultValue;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the defaultValue
|
||||
*/
|
||||
@Nullable
|
||||
public O getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return the feature property name
|
||||
*/
|
||||
public String getProperty() {
|
||||
return property;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> valueObject = super.toValueObject();
|
||||
valueObject.put(PROPERTY_KEY, property);
|
||||
if (defaultValue != null) {
|
||||
valueObject.put(DEFAULT_VALUE_KEY, defaultValue);
|
||||
}
|
||||
return valueObject;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,301 @@
|
||||
package com.mapbox.mapboxsdk.style.functions;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.CategoricalStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.CompositeStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.ExponentialStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.IdentityStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.IntervalStops;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stop;
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stops;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import timber.log.Timber;
|
||||
|
||||
/**
|
||||
* Functions are used to change properties in relation to the state of the map.
|
||||
* <p>
|
||||
* The value for any layout or paint property may be specified as a function. Functions allow you to
|
||||
* make the appearance of a map feature change with the current zoom level and/or the feature's properties.
|
||||
*
|
||||
* @param <I> the function's input type
|
||||
* @param <O> the target property's value type. Make sure it matches.
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The style specification</a>
|
||||
*/
|
||||
public class Function<I, O> {
|
||||
|
||||
static final String PROPERTY_KEY = "property";
|
||||
static final String DEFAULT_VALUE_KEY = "defaultValue";
|
||||
|
||||
/**
|
||||
* Create an exponential {@link CameraFunction}
|
||||
* <p>
|
||||
* Zoom functions allow the appearance of a map feature to change with map’s zoom.
|
||||
* Zoom functions can be used to create the illusion of depth and control data density.
|
||||
* Each stop is an array with two elements, the first is a zoom and the second is a function output value.
|
||||
*
|
||||
* @param <Z> the zoom level type (Float, Integer)
|
||||
* @param <O> the property type
|
||||
* @param stops the stops implementation that define the function. @see {@link Stops#exponential(Stop[])}
|
||||
* @return the {@link CameraFunction}
|
||||
* @see CameraFunction
|
||||
* @see ExponentialStops
|
||||
* @see Stops#exponential(Stop[])
|
||||
* @see Stops#exponential(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <Z extends Number, O> CameraFunction<Z, O> zoom(@NonNull ExponentialStops<Z, O> stops) {
|
||||
return new CameraFunction<>(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an interval {@link CameraFunction}
|
||||
* <p>
|
||||
* Zoom functions allow the appearance of a map feature to change with map’s zoom.
|
||||
* Zoom functions can be used to create the illusion of depth and control data density.
|
||||
* Each stop is an array with two elements, the first is a zoom and the second is a function output value.
|
||||
*
|
||||
* @param <Z> the zoom level type (Float, Integer)
|
||||
* @param <O> the property type
|
||||
* @param stops the stops implementation that define the function. @see {@link Stops#interval(Stop[])}
|
||||
* @return the {@link CameraFunction}
|
||||
* @see CameraFunction
|
||||
* @see IntervalStops
|
||||
* @see Stops#interval(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <Z extends Number, O> CameraFunction<Z, O> zoom(@NonNull IntervalStops<Z, O> stops) {
|
||||
return new CameraFunction<>(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an exponential {@link SourceFunction}
|
||||
* <p>
|
||||
* Source functions allow the appearance of a map feature to change with
|
||||
* its properties. Source functions can be used to visually differentiate
|
||||
* types of features within the same layer or create data visualizations.
|
||||
* Each stop is an array with two elements, the first is a property input
|
||||
* value and the second is a function output value. Note that support for
|
||||
* property functions is not available across all properties and platforms
|
||||
* at this time.
|
||||
*
|
||||
* @param property the feature property name
|
||||
* @param stops the stops
|
||||
* @param <I> the function input type
|
||||
* @param <O> the function output type
|
||||
* @return the {@link SourceFunction}
|
||||
* @see SourceFunction
|
||||
* @see ExponentialStops
|
||||
* @see Stops#exponential(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <I, O> SourceFunction<I, O> property(@NonNull String property, @NonNull ExponentialStops<I, O> stops) {
|
||||
return new SourceFunction<>(property, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an identity {@link SourceFunction}
|
||||
* <p>
|
||||
* Source functions allow the appearance of a map feature to change with
|
||||
* its properties. Source functions can be used to visually differentiate
|
||||
* types of features within the same layer or create data visualizations.
|
||||
* Each stop is an array with two elements, the first is a property input
|
||||
* value and the second is a function output value. Note that support for
|
||||
* property functions is not available across all properties and platforms
|
||||
* at this time.
|
||||
*
|
||||
* @param property the feature property name
|
||||
* @param stops the stops
|
||||
* @param <T> the function input/output type
|
||||
* @return the {@link SourceFunction}
|
||||
* @see SourceFunction
|
||||
* @see IdentityStops
|
||||
* @see Stops#identity()
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <T> SourceFunction<T, T> property(@NonNull String property, @NonNull IdentityStops<T> stops) {
|
||||
return new SourceFunction<>(property, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an interval {@link SourceFunction}
|
||||
* <p>
|
||||
* Source functions allow the appearance of a map feature to change with
|
||||
* its properties. Source functions can be used to visually differentiate
|
||||
* types of features within the same layer or create data visualizations.
|
||||
* Each stop is an array with two elements, the first is a property input
|
||||
* value and the second is a function output value. Note that support for
|
||||
* property functions is not available across all properties and platforms
|
||||
* at this time.
|
||||
*
|
||||
* @param property the feature property name
|
||||
* @param stops the stops
|
||||
* @param <I> the function input type
|
||||
* @param <O> the function output type
|
||||
* @return the {@link SourceFunction}
|
||||
* @see SourceFunction
|
||||
* @see IntervalStops
|
||||
* @see Stops#interval(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <I, O> SourceFunction<I, O> property(@NonNull String property, @NonNull IntervalStops<I, O> stops) {
|
||||
return new SourceFunction<>(property, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an categorical {@link SourceFunction}
|
||||
* <p>
|
||||
* Source functions allow the appearance of a map feature to change with
|
||||
* its properties. Source functions can be used to visually differentiate
|
||||
* types of features within the same layer or create data visualizations.
|
||||
* Each stop is an array with two elements, the first is a property input
|
||||
* value and the second is a function output value. Note that support for
|
||||
* property functions is not available across all properties and platforms
|
||||
* at this time.
|
||||
*
|
||||
* @param property the feature property name
|
||||
* @param stops the stops
|
||||
* @param <I> the function input type
|
||||
* @param <O> the function output type
|
||||
* @return the {@link SourceFunction}
|
||||
* @see SourceFunction
|
||||
* @see CategoricalStops
|
||||
* @see Stops#categorical(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <I, O> SourceFunction<I, O> property(@NonNull String property, @NonNull CategoricalStops<I, O> stops) {
|
||||
return new SourceFunction<>(property, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a composite, categorical function.
|
||||
* <p>
|
||||
* Composite functions allow the appearance of a map feature to change with both its
|
||||
* properties and zoom. Each stop is an array with two elements, the first is an object
|
||||
* with a property input value and a zoom, and the second is a function output value. Note
|
||||
* that support for property functions is not yet complete.
|
||||
*
|
||||
* @param property the feature property name for the source part of the function
|
||||
* @param stops the stops
|
||||
* @param <Z> the zoom function input type (Float usually)
|
||||
* @param <I> the function input type for the source part of the function
|
||||
* @param <O> the function output type
|
||||
* @return the {@link CompositeFunction}
|
||||
* @see CompositeFunction
|
||||
* @see CategoricalStops
|
||||
* @see Stops#categorical(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <Z extends Number, I, O> CompositeFunction<Z, I, O> composite(
|
||||
@NonNull String property,
|
||||
@NonNull CategoricalStops<Stop.CompositeValue<Z, I>, O> stops) {
|
||||
|
||||
return new CompositeFunction<>(property, new CompositeStops<>(stops));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a composite, exponential function.
|
||||
* <p>
|
||||
* Composite functions allow the appearance of a map feature to change with both its
|
||||
* properties and zoom. Each stop is an array with two elements, the first is an object
|
||||
* with a property input value and a zoom, and the second is a function output value. Note
|
||||
* that support for property functions is not yet complete.
|
||||
*
|
||||
* @param property the feature property name for the source part of the function
|
||||
* @param stops the stops
|
||||
* @param <Z> the zoom function input type (Float usually)
|
||||
* @param <I> the function input type for the source part of the function
|
||||
* @param <O> the function output type
|
||||
* @return the {@link CompositeFunction}
|
||||
* @see CompositeFunction
|
||||
* @see ExponentialStops
|
||||
* @see Stops#exponential(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <Z extends Number, I, O> CompositeFunction<Z, I, O> composite(
|
||||
@NonNull String property,
|
||||
@NonNull ExponentialStops<Stop.CompositeValue<Z, I>, O> stops) {
|
||||
|
||||
return new CompositeFunction<>(property, new CompositeStops<>(stops));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a composite, interval function.
|
||||
* <p>
|
||||
* Composite functions allow the appearance of a map feature to change with both its
|
||||
* properties and zoom. Each stop is an array with two elements, the first is an object
|
||||
* with a property input value and a zoom, and the second is a function output value. Note
|
||||
* that support for property functions is not yet complete.
|
||||
*
|
||||
* @param property the feature property name for the source part of the function
|
||||
* @param stops the stops
|
||||
* @param <Z> the zoom function input type (Float usually)
|
||||
* @param <I> the function input type for the source part of the function
|
||||
* @param <O> the function output type
|
||||
* @return the {@link CompositeFunction}
|
||||
* @see CompositeFunction
|
||||
* @see IntervalStops
|
||||
* @see Stops#interval(Stop[])
|
||||
* @see Stop#stop
|
||||
*/
|
||||
public static <Z extends Number, I, O> CompositeFunction<Z, I, O> composite(
|
||||
@NonNull String property,
|
||||
@NonNull IntervalStops<Stop.CompositeValue<Z, I>, O> stops) {
|
||||
|
||||
return new CompositeFunction<>(property, new CompositeStops<>(stops));
|
||||
}
|
||||
|
||||
// Class definition //
|
||||
|
||||
private final Stops<I, O> stops;
|
||||
|
||||
/**
|
||||
* JNI Cosntructor for implementation classes
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
Function(@NonNull Stops stops) {
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the stops in this function
|
||||
*/
|
||||
public Stops getStops() {
|
||||
return stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method
|
||||
*
|
||||
* @param <S> the Stops implementation type
|
||||
* @return the Stops implementation or null when the wrong type is specified
|
||||
*/
|
||||
@Nullable
|
||||
public <S extends Stops> S getStopsAs() {
|
||||
try {
|
||||
// noinspection unchecked
|
||||
return (S) stops;
|
||||
} catch (ClassCastException exception) {
|
||||
Timber.e(String.format("Stops: %s is a different type: %s", stops.getClass(), exception));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return a value object representation for core conversion
|
||||
*/
|
||||
public Map<String, Object> toValueObject() {
|
||||
return stops.toValueObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s: %s", getClass().getSimpleName(), stops);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.mapbox.mapboxsdk.style.functions;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stops;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Source functions take Feature property names as input.
|
||||
* <p>
|
||||
* Source functions allow the appearance of a map feature to change with
|
||||
* its properties. Source functions can be used to visually differentiate
|
||||
* types of features within the same layer or create data visualizations.
|
||||
* Each stop is an array with two elements, the first is a property input
|
||||
* value and the second is a function output value. Note that support for
|
||||
* property functions is not available across all properties and platforms
|
||||
* at this time.
|
||||
*
|
||||
* @param <I> the input type
|
||||
* @param <O> the output type
|
||||
* @see Function#property
|
||||
*/
|
||||
public class SourceFunction<I, O> extends Function<I, O> {
|
||||
|
||||
private final String property;
|
||||
private O defaultValue;
|
||||
|
||||
SourceFunction(@NonNull String property, @NonNull Stops<I, O> stops) {
|
||||
this(null, property, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* JNI Constructor
|
||||
*/
|
||||
private SourceFunction(@Nullable O defaultValue, @NonNull String property, @NonNull Stops<I, O> stops) {
|
||||
super(stops);
|
||||
this.property = property;
|
||||
this.defaultValue = defaultValue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return The feature property name
|
||||
*/
|
||||
public String getProperty() {
|
||||
return property;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param defaultValue the default value to use when no other applies
|
||||
* @return this (for chaining)
|
||||
*/
|
||||
public SourceFunction<I, O> withDefaultValue(O defaultValue) {
|
||||
this.defaultValue = defaultValue;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the defaultValue
|
||||
*/
|
||||
@Nullable
|
||||
public O getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> valueObject = super.toValueObject();
|
||||
valueObject.put(PROPERTY_KEY, property);
|
||||
if (defaultValue != null) {
|
||||
valueObject.put(DEFAULT_VALUE_KEY, defaultValue);
|
||||
}
|
||||
return valueObject;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Contains the Mapbox Maps Android Style Function API classes.
|
||||
*
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The style specification</a>
|
||||
*/
|
||||
package com.mapbox.mapboxsdk.style.functions;
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* {@link Stops} implementation for categorical functions
|
||||
*
|
||||
* @param <I> the {@link Stop} input type
|
||||
* @param <O> the {@link Stop} output type
|
||||
*/
|
||||
public class CategoricalStops<I, O> extends IterableStops<I, O, Stop<I, O>> {
|
||||
|
||||
private final Stop<I, O>[] stops;
|
||||
|
||||
/**
|
||||
* Create a categorical {@link Stops} implementation. Use through {@link Stops#categorical(Stop[])}
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public CategoricalStops(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> map = super.toValueObject();
|
||||
map.put("stops", toValueObjects(stops));
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
return "categorical";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Stop<I, O>> iterator() {
|
||||
return Arrays.asList(stops).iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public int size() {
|
||||
return stops.length;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import android.support.annotation.Keep;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.stops.Stop.CompositeValue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The {@link Stops} implementation for composite functions
|
||||
*
|
||||
* @param <Z> the zoom type (usually Float)
|
||||
* @param <I> the input type (the feature property type)
|
||||
* @param <O> the output type (the property type)
|
||||
* @param <S> the {@link Stops} implementation (eg CategoricalStops, {@link ExponentialStops} or {@link IntervalStops})
|
||||
*/
|
||||
public class CompositeStops<Z extends Number, I, O, S extends IterableStops<I, O, Stop<I, O>>>
|
||||
extends IterableStops<CompositeValue<Z, I>, O, Map.Entry<Z, S>> {
|
||||
|
||||
private final Map<Z, S> stops;
|
||||
|
||||
/**
|
||||
* JNI Constructor
|
||||
*
|
||||
* @param stops the stops {@link Map}
|
||||
*/
|
||||
@Keep
|
||||
private CompositeStops(@NonNull @Size(min = 1) Map<Z, S> stops) {
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create composite stops for {@link ExponentialStops}. Use
|
||||
* {@link com.mapbox.mapboxsdk.style.functions.Function#composite(String, ExponentialStops)}
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
public CompositeStops(@NonNull ExponentialStops<Stop.CompositeValue<Z, I>, O> stops) {
|
||||
this.stops = new HashMap<>();
|
||||
|
||||
for (Map.Entry<Z, List<Stop<I, O>>> entry : collect(stops).entrySet()) {
|
||||
// noinspection unchecked
|
||||
this.stops.put(entry.getKey(),
|
||||
(S) new ExponentialStops<>(stops.getBase(), entry.getValue().toArray(new Stop[0])));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create composite stops for {@link IntervalStops}.
|
||||
* Use {@link com.mapbox.mapboxsdk.style.functions.Function#composite(String, IntervalStops)}
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
public CompositeStops(@NonNull IntervalStops<Stop.CompositeValue<Z, I>, O> stops) {
|
||||
this.stops = new HashMap<>();
|
||||
|
||||
for (Map.Entry<Z, List<Stop<I, O>>> entry : collect(stops).entrySet()) {
|
||||
// noinspection unchecked
|
||||
this.stops.put(entry.getKey(), (S) new IntervalStops<>(entry.getValue().toArray(new Stop[0])));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create composite stops for {@link CategoricalStops}.
|
||||
* Use {@link com.mapbox.mapboxsdk.style.functions.Function#composite(String, CategoricalStops)}
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
public CompositeStops(@NonNull CategoricalStops<CompositeValue<Z, I>, O> stops) {
|
||||
this.stops = new HashMap<>();
|
||||
|
||||
for (Map.Entry<Z, List<Stop<I, O>>> entry : collect(stops).entrySet()) {
|
||||
// noinspection unchecked
|
||||
this.stops.put(entry.getKey(), (S) new CategoricalStops<>(entry.getValue().toArray(new Stop[0])));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected String getTypeName() {
|
||||
return stops.values().iterator().next().getTypeName();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> map = super.toValueObject();
|
||||
|
||||
// Flatten and toValueObjects stops
|
||||
// noinspection unchecked
|
||||
map.put("stops", toValueObjects(flatten(this.stops).toArray(new Stop[0])));
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private List<Stop<CompositeValue<Z, I>, O>> flatten(Map<Z, S> stops) {
|
||||
List<Stop<CompositeValue<Z, I>, O>> flattenedStops = new ArrayList<>();
|
||||
for (Map.Entry<Z, S> entry : stops.entrySet()) {
|
||||
for (Stop<I, O> stop : entry.getValue()) {
|
||||
flattenedStops.add(new Stop<>(new CompositeValue<>(entry.getKey(), stop.in), stop.out));
|
||||
}
|
||||
}
|
||||
return flattenedStops;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private Map<Z, List<Stop<I, O>>> collect(
|
||||
@NonNull IterableStops<CompositeValue<Z, I>, O, Stop<CompositeValue<Z, I>, O>> stops) {
|
||||
Map<Z, List<Stop<I, O>>> converted = new HashMap<>();
|
||||
|
||||
for (Stop<CompositeValue<Z, I>, O> stop : stops) {
|
||||
List<Stop<I, O>> stopsForZ = converted.get(stop.in.zoom);
|
||||
if (stopsForZ == null) {
|
||||
stopsForZ = new ArrayList<>();
|
||||
converted.put(stop.in.zoom, stopsForZ);
|
||||
}
|
||||
|
||||
stopsForZ.add(new Stop<>(stop.in.value, stop.out));
|
||||
}
|
||||
|
||||
return converted;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Map.Entry<Z, S>> iterator() {
|
||||
return stops.entrySet().iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public int size() {
|
||||
return stops.size();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The {@link Stops} implementation for exponential functions
|
||||
*
|
||||
* @param <I> the input type
|
||||
* @param <O> the output type
|
||||
*/
|
||||
public class ExponentialStops<I, O> extends IterableStops<I, O, Stop<I, O>> {
|
||||
|
||||
private float base;
|
||||
private final Stop<I, O>[] stops;
|
||||
|
||||
/**
|
||||
* Create exponential stops with an explicit base. Use through {@link Stops#exponential(Stop[])}
|
||||
*
|
||||
* @param base The exponential base of the interpolation curve. It controls the rate at which the function output
|
||||
* increases. Higher values make the output increase more towards the high end of the range.
|
||||
* With values close to 1 the output increases linearly.
|
||||
* @param stops the stops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public ExponentialStops(Float base, @NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
this.base = base != null ? base : 1.0f;
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create exponential stops without an explicit base. Use through {@link Stops#exponential(Stop[])}
|
||||
*
|
||||
* @param stops the stops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public ExponentialStops(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
this(null, stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the exponential base
|
||||
*
|
||||
* @param base the base to use in the exponential function
|
||||
* @return this (for chaining)
|
||||
*/
|
||||
public ExponentialStops<I, O> withBase(float base) {
|
||||
this.base = base;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The exponential base
|
||||
*/
|
||||
public float getBase() {
|
||||
return base;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> map = super.toValueObject();
|
||||
map.put("base", base);
|
||||
map.put("stops", toValueObjects(stops));
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
return "exponential";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Stop<I, O>> iterator() {
|
||||
return Arrays.asList(stops).iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public int size() {
|
||||
return stops.length;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
/**
|
||||
* The {@link Stops} implementation for identity functions
|
||||
*
|
||||
* @param <T> the input/output type
|
||||
*/
|
||||
public class IdentityStops<T> extends Stops<T, T> {
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected String getTypeName() {
|
||||
return "identity";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The {@link Stops} implementation for interval functions
|
||||
*
|
||||
* @param <I> the input type
|
||||
* @param <O> the output type
|
||||
*/
|
||||
public class IntervalStops<I, O> extends IterableStops<I, O, Stop<I, O>> {
|
||||
|
||||
private final Stop<I, O>[] stops;
|
||||
|
||||
@SafeVarargs
|
||||
public IntervalStops(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String getTypeName() {
|
||||
return "interval";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> toValueObject() {
|
||||
Map<String, Object> map = super.toValueObject();
|
||||
map.put("stops", toValueObjects(stops));
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return an {@link Iterator} for the contained stops
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Stop<I, O>> iterator() {
|
||||
return Arrays.asList(stops).iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of contained stops
|
||||
*/
|
||||
@Override
|
||||
public int size() {
|
||||
return stops.length;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* Base class for {@link Stops} implementations with a collection of stops
|
||||
*
|
||||
* @param <I> the {@link Stops} input type
|
||||
* @param <O> the {@link Stops} output type
|
||||
* @param <S> the {@link Iterable} element type (usually {@link Stop})
|
||||
*/
|
||||
public abstract class IterableStops<I, O, S> extends Stops<I, O> implements Iterable<S> {
|
||||
|
||||
/**
|
||||
* @return The size of the contained stops collection
|
||||
*/
|
||||
public abstract int size();
|
||||
|
||||
/**
|
||||
* Convenience function to toValueObjects an array of stops to an array of value objects
|
||||
*
|
||||
* @param stops the stops to toValueObjects
|
||||
* @return the stops as value objects
|
||||
*/
|
||||
Object[] toValueObjects(Stop<I, O>[] stops) {
|
||||
if (stops != null) {
|
||||
Object[] stopsValue = new Object[stops.length];
|
||||
|
||||
for (int i = 0; i < stopsValue.length; i++) {
|
||||
Stop stop = stops[i];
|
||||
stopsValue[i] = stop.toValueObject();
|
||||
}
|
||||
return stopsValue;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder buffer = new StringBuilder();
|
||||
Iterator<S> iterator = iterator();
|
||||
while (iterator.hasNext()) {
|
||||
S stop = iterator.next();
|
||||
buffer.append(stop);
|
||||
if (iterator.hasNext()) {
|
||||
buffer.append(",");
|
||||
}
|
||||
}
|
||||
return String.format("%s: [%s]", super.toString(), buffer.toString());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.Function;
|
||||
import com.mapbox.mapboxsdk.style.layers.PropertyValue;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A stop represents a certain point in the range of this function
|
||||
*
|
||||
* @param <I> input the stop (function) input type
|
||||
* @param <O> output the stop (function) output type
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The style specification</a>
|
||||
*/
|
||||
public class Stop<I, O> {
|
||||
/**
|
||||
* Creates a {@link Stop} to use in a {@link Function}
|
||||
*
|
||||
* @param in the input for the stop
|
||||
* @param output the output for the stop
|
||||
* @param <I> the input property type
|
||||
* @param <O> the output property type
|
||||
* @return the {@link Stop}
|
||||
*/
|
||||
public static <I, O> Stop<I, O> stop(I in, PropertyValue<O> output) {
|
||||
return new Stop<>(in, output.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a composite {@link Stop} for use in a {@link com.mapbox.mapboxsdk.style.functions.CompositeFunction}
|
||||
*
|
||||
* @param zoom the zoom input
|
||||
* @param value the feature property input
|
||||
* @param output the output for the stop
|
||||
* @param <Z> the zoom type
|
||||
* @param <I> the feature property input type
|
||||
* @param <O> the output property type
|
||||
* @return the {@link Stop}
|
||||
* @see Function#composite(String, ExponentialStops)
|
||||
*/
|
||||
public static <Z extends Number, I, O> Stop<Stop.CompositeValue<Z, I>, O> stop(Z zoom,
|
||||
I value,
|
||||
PropertyValue<O> output) {
|
||||
return new Stop<>(new Stop.CompositeValue<>(zoom, value), output.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a composite input value for composite functions (eg zoom and feature property value)
|
||||
*
|
||||
* @param <Z> the zoom input type (typically Float)
|
||||
* @param <V> the feature property input type
|
||||
*/
|
||||
public static class CompositeValue<Z extends Number, V> {
|
||||
Z zoom;
|
||||
V value;
|
||||
|
||||
CompositeValue(Z zoom, V value) {
|
||||
this.zoom = zoom;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return the value object representation for core conversion
|
||||
*/
|
||||
Map<String, Object> toValueObject() {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("zoom", zoom);
|
||||
map.put("value", value);
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("[zoom: %s, value: %s]", zoom, value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The input type
|
||||
*/
|
||||
public final I in;
|
||||
|
||||
/**
|
||||
* The output type
|
||||
*/
|
||||
public final O out;
|
||||
|
||||
Stop(I in, O out) {
|
||||
this.in = in;
|
||||
this.out = out;
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return an array representation of the Stop
|
||||
*/
|
||||
Object[] toValueObject() {
|
||||
return new Object[] {in instanceof CompositeValue ? ((CompositeValue) in).toValueObject() : in, out};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("[%s, %s]", in, out);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The base class for different stops implementations
|
||||
*
|
||||
* @param <I> the input type
|
||||
* @param <O> the output type
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The style specification</a>
|
||||
*/
|
||||
public abstract class Stops<I, O> {
|
||||
|
||||
/**
|
||||
* Convenience method for use in function declarations
|
||||
*
|
||||
* @param stops the collections of discrete stops
|
||||
* @param <I> the Stops input type
|
||||
* @param <O> the Stops output type
|
||||
* @return the {@link Stops} implementation
|
||||
* @see Stop#stop
|
||||
* @see CategoricalStops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <I, O> CategoricalStops<I, O> categorical(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
return new CategoricalStops<>(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method for use in function declarations
|
||||
*
|
||||
* @param stops the collections of discrete stops
|
||||
* @param <I> the Stops input type
|
||||
* @param <O> the Stops output type
|
||||
* @return the {@link Stops} implementation
|
||||
* @see Stop#stop
|
||||
* @see ExponentialStops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <I, O> ExponentialStops<I, O> exponential(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
return new ExponentialStops<>(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method for use in function declarations
|
||||
*
|
||||
* @param <T> the Stops input/output type
|
||||
* @return the {@link IdentityStops} implementation
|
||||
* @see Stop#stop
|
||||
* @see IdentityStops
|
||||
*/
|
||||
public static <T> IdentityStops<T> identity() {
|
||||
return new IdentityStops<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method for use in function declarations
|
||||
*
|
||||
* @param stops the collections of discrete stops
|
||||
* @param <I> the Stops input type
|
||||
* @param <O> the Stops output type
|
||||
* @return the {@link Stops} implementation
|
||||
* @see Stop#stop
|
||||
* @see IntervalStops
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <I, O> IntervalStops<I, O> interval(@NonNull @Size(min = 1) Stop<I, O>... stops) {
|
||||
return new IntervalStops<>(stops);
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return the value object representation for conversion to core
|
||||
*/
|
||||
public Map<String, Object> toValueObject() {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("type", getTypeName());
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL USAGE ONLY
|
||||
*
|
||||
* @return the unique type name as a string according to the style specification
|
||||
*/
|
||||
protected abstract String getTypeName();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getTypeName();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Contains the Mapbox Maps Android Style Function Stop implementation API classes.
|
||||
*
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The style specification</a>
|
||||
*/
|
||||
package com.mapbox.mapboxsdk.style.functions.stops;
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
@@ -41,7 +42,7 @@ public class BackgroundLayer extends Layer {
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public BackgroundLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public BackgroundLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -55,7 +56,7 @@ public class BackgroundLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getBackgroundColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetBackgroundColor());
|
||||
return (PropertyValue<String>) new PropertyValue("background-color", nativeGetBackgroundColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,7 +83,7 @@ public class BackgroundLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getBackgroundPattern() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetBackgroundPattern());
|
||||
return (PropertyValue<String>) new PropertyValue("background-pattern", nativeGetBackgroundPattern());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,7 +93,7 @@ public class BackgroundLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getBackgroundOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetBackgroundOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("background-opacity", nativeGetBackgroundOpacity());
|
||||
}
|
||||
|
||||
private native Object nativeGetBackgroundColor();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
@@ -96,14 +97,13 @@ public class CircleLayer extends Layer {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public CircleLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public CircleLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getCircleRadius() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetCircleRadius());
|
||||
return (PropertyValue<Float>) new PropertyValue("circle-radius", nativeGetCircleRadius());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +127,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getCircleColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetCircleColor());
|
||||
return (PropertyValue<String>) new PropertyValue("circle-color", nativeGetCircleColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,7 +154,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getCircleBlur() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetCircleBlur());
|
||||
return (PropertyValue<Float>) new PropertyValue("circle-blur", nativeGetCircleBlur());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,7 +164,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getCircleOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetCircleOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("circle-opacity", nativeGetCircleOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,7 +174,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getCircleTranslate() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetCircleTranslate());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("circle-translate", nativeGetCircleTranslate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -184,7 +184,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getCircleTranslateAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetCircleTranslateAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("circle-translate-anchor", nativeGetCircleTranslateAnchor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,7 +194,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getCirclePitchScale() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetCirclePitchScale());
|
||||
return (PropertyValue<String>) new PropertyValue("circle-pitch-scale", nativeGetCirclePitchScale());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,7 +204,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getCircleStrokeWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetCircleStrokeWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("circle-stroke-width", nativeGetCircleStrokeWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,7 +214,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getCircleStrokeColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetCircleStrokeColor());
|
||||
return (PropertyValue<String>) new PropertyValue("circle-stroke-color", nativeGetCircleStrokeColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,7 +241,7 @@ public class CircleLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getCircleStrokeOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetCircleStrokeOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("circle-stroke-opacity", nativeGetCircleStrokeOpacity());
|
||||
}
|
||||
|
||||
private native Object nativeGetCircleRadius();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
@@ -96,14 +97,13 @@ public class FillLayer extends Layer {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public FillLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public FillLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getFillAntialias() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetFillAntialias());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("fill-antialias", nativeGetFillAntialias());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +127,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getFillOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetFillOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("fill-opacity", nativeGetFillOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,12 +137,11 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getFillColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetFillColor());
|
||||
return (PropertyValue<String>) new PropertyValue("fill-color", nativeGetFillColor());
|
||||
}
|
||||
|
||||
/**
|
||||
* The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the
|
||||
* color's opacity will not affect the opacity of the 1px stroke, if it is used.
|
||||
* The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.
|
||||
*
|
||||
* @return int representation of a rgba string color
|
||||
* @throws RuntimeException thrown if property isn't a value
|
||||
@@ -165,7 +164,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getFillOutlineColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetFillOutlineColor());
|
||||
return (PropertyValue<String>) new PropertyValue("fill-outline-color", nativeGetFillOutlineColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -192,7 +191,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getFillTranslate() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetFillTranslate());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("fill-translate", nativeGetFillTranslate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,7 +201,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getFillTranslateAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetFillTranslateAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("fill-translate-anchor", nativeGetFillTranslateAnchor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -212,7 +211,7 @@ public class FillLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getFillPattern() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetFillPattern());
|
||||
return (PropertyValue<String>) new PropertyValue("fill-pattern", nativeGetFillPattern());
|
||||
}
|
||||
|
||||
private native Object nativeGetFillAntialias();
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.FloatRange;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.Size;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Functions are used to change properties in relation to the state of the map.
|
||||
* <p>
|
||||
* Currently, only zoom functions are supported.
|
||||
* </p>
|
||||
*
|
||||
* @param <T> the target property's value type. Make sure it matches.
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#types-function">The online documentation</a>
|
||||
*/
|
||||
public class Function<T> {
|
||||
|
||||
/**
|
||||
* A stop represents a certain point in the range of this function
|
||||
*
|
||||
* @param <I> input
|
||||
* @param <O> output
|
||||
*/
|
||||
public static class Stop<I, O> {
|
||||
public final I in;
|
||||
public final O out;
|
||||
|
||||
Stop(I in, O out) {
|
||||
this.in = in;
|
||||
this.out = out;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return an array representation of the Stop
|
||||
*/
|
||||
Object[] toValueObject() {
|
||||
return new Object[] {in, out};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("[%s, %s]", in, out);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Zoom functions allow the appearance of a map feature to change with map’s zoom.
|
||||
* Zoom functions can be used to create the illusion of depth and control data density.
|
||||
* Each stop is an array with two elements, the first is a zoom and the second is a function output value.
|
||||
*
|
||||
* @param stops the stops that define the function
|
||||
* @param <T> the property type
|
||||
* @return the {@link Function}
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <T> Function<T> zoom(@NonNull @Size(min = 1) Stop<Float, T>... stops) {
|
||||
return new Function<T>(stops);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Zoom functions allow the appearance of a map feature to change with map’s zoom.
|
||||
* Zoom functions can be used to create the illusion of depth and control data density.
|
||||
* Each stop is an array with two elements, the first is a zoom and the second is a function output value.
|
||||
*
|
||||
* @param stops the stops that define the function
|
||||
* @param base the exponential base of the interpolation curve - Default 1
|
||||
* @param <T> the property type
|
||||
* @return the {@link Function}
|
||||
*/
|
||||
@SafeVarargs
|
||||
public static <T> Function<T> zoom(
|
||||
@FloatRange(from = 0, to = 1, fromInclusive = false, toInclusive = false) float base,
|
||||
@NonNull @Size(min = 1) Stop<Float, T>... stops) {
|
||||
return new Function<T>(stops)
|
||||
.withBase(base);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a stop to use in a {@link Function}
|
||||
*
|
||||
* @param in the input for the stop
|
||||
* @param output the output for the stop
|
||||
* @param <T> the output property type
|
||||
* @return the {@link Stop}
|
||||
*/
|
||||
public static <T> Stop<Float, T> stop(float in, Property<T> output) {
|
||||
return new Stop<>(in, output.value);
|
||||
}
|
||||
|
||||
private final Stop<Float, T>[] stops;
|
||||
private Float base;
|
||||
|
||||
Function(@NonNull @Size(min = 1) Stop<Float, T>[] stops) {
|
||||
this.stops = stops;
|
||||
}
|
||||
|
||||
Function<T> withBase(float base) {
|
||||
this.base = base;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the base
|
||||
*/
|
||||
@Nullable
|
||||
public Float getBase() {
|
||||
return base;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the stops in this function
|
||||
*/
|
||||
public Stop<Float, T>[] getStops() {
|
||||
return stops;
|
||||
}
|
||||
|
||||
Map<String, Object> toValueObject() {
|
||||
Object[] stopsValue = new Object[stops.length];
|
||||
|
||||
for (int i = 0; i < stopsValue.length; i++) {
|
||||
Stop stop = stops[i];
|
||||
stopsValue[i] = stop.toValueObject();
|
||||
}
|
||||
|
||||
Map<String, Object> value = new HashMap<>();
|
||||
if (base != null) {
|
||||
value.put("base", base);
|
||||
}
|
||||
value.put("stops", stopsValue);
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@ package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.Function;
|
||||
|
||||
/**
|
||||
* Base class for the different Layer types
|
||||
*/
|
||||
@@ -17,14 +19,14 @@ public abstract class Layer {
|
||||
public Layer() {
|
||||
}
|
||||
|
||||
public void setProperties(@NonNull Property<?>... properties) {
|
||||
public void setProperties(@NonNull PropertyValue<?>... properties) {
|
||||
if (properties.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Property<?> property : properties) {
|
||||
for (PropertyValue<?> property : properties) {
|
||||
Object converted = convertValue(property.value);
|
||||
if (property instanceof PaintProperty) {
|
||||
if (property instanceof PaintPropertyValue) {
|
||||
nativeSetPaintProperty(property.name, converted);
|
||||
} else {
|
||||
nativeSetLayoutProperty(property.name, converted);
|
||||
@@ -37,7 +39,7 @@ public abstract class Layer {
|
||||
}
|
||||
|
||||
public PropertyValue<String> getVisibility() {
|
||||
return new PropertyValue<>(nativeGetVisibility());
|
||||
return new PaintPropertyValue<>("visibility", (String) nativeGetVisibility());
|
||||
}
|
||||
|
||||
public float getMinZoom() {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
class LayoutProperty<T> extends Property<T> {
|
||||
|
||||
LayoutProperty(String name, T value) {
|
||||
super(name, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
class LayoutPropertyValue<T> extends PropertyValue<T> {
|
||||
|
||||
LayoutPropertyValue(@NonNull String name, T value) {
|
||||
super(name, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
@@ -96,14 +97,13 @@ public class LineLayer extends Layer {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public LineLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public LineLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getLineCap() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetLineCap());
|
||||
return (PropertyValue<String>) new PropertyValue("line-cap", nativeGetLineCap());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +127,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getLineJoin() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetLineJoin());
|
||||
return (PropertyValue<String>) new PropertyValue("line-join", nativeGetLineJoin());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,7 +137,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineMiterLimit() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineMiterLimit());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-miter-limit", nativeGetLineMiterLimit());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,7 +147,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineRoundLimit() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineRoundLimit());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-round-limit", nativeGetLineRoundLimit());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,7 +157,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-opacity", nativeGetLineOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -167,7 +167,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getLineColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetLineColor());
|
||||
return (PropertyValue<String>) new PropertyValue("line-color", nativeGetLineColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,7 +194,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getLineTranslate() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetLineTranslate());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("line-translate", nativeGetLineTranslate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,7 +204,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getLineTranslateAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetLineTranslateAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("line-translate-anchor", nativeGetLineTranslateAnchor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,7 +214,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-width", nativeGetLineWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -224,7 +224,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineGapWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineGapWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-gap-width", nativeGetLineGapWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -234,7 +234,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineOffset() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineOffset());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-offset", nativeGetLineOffset());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,7 +244,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getLineBlur() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetLineBlur());
|
||||
return (PropertyValue<Float>) new PropertyValue("line-blur", nativeGetLineBlur());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -254,7 +254,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getLineDasharray() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetLineDasharray());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("line-dasharray", nativeGetLineDasharray());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,7 +264,7 @@ public class LineLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getLinePattern() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetLinePattern());
|
||||
return (PropertyValue<String>) new PropertyValue("line-pattern", nativeGetLinePattern());
|
||||
}
|
||||
|
||||
private native Object nativeGetLineCap();
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
class PaintProperty<T> extends Property<T> {
|
||||
|
||||
PaintProperty(String name, T value) {
|
||||
super(name, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
class PaintPropertyValue<T> extends PropertyValue<T> {
|
||||
|
||||
PaintPropertyValue(@NonNull String name, T value) {
|
||||
super(name, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.StringDef;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -9,7 +10,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
/**
|
||||
* Paint/Layout properties for Layer
|
||||
*/
|
||||
public abstract class Property<T> {
|
||||
public final class Property {
|
||||
|
||||
// VISIBILITY: Whether this layer is displayed.
|
||||
|
||||
@@ -22,13 +23,12 @@ public abstract class Property<T> {
|
||||
*/
|
||||
public static final String NONE = "none";
|
||||
|
||||
@StringDef( {
|
||||
VISIBLE,
|
||||
NONE
|
||||
@StringDef({
|
||||
VISIBLE,
|
||||
NONE
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface VISIBILITY {
|
||||
}
|
||||
public @interface VISIBILITY {}
|
||||
|
||||
// LINE_CAP: The display of line endings.
|
||||
|
||||
@@ -37,57 +37,50 @@ public abstract class Property<T> {
|
||||
*/
|
||||
public static final String LINE_CAP_BUTT = "butt";
|
||||
/**
|
||||
* A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's
|
||||
* width and centered on the endpoint of the line.
|
||||
* A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line.
|
||||
*/
|
||||
public static final String LINE_CAP_ROUND = "round";
|
||||
/**
|
||||
* A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the
|
||||
* line's width.
|
||||
* A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width.
|
||||
*/
|
||||
public static final String LINE_CAP_SQUARE = "square";
|
||||
|
||||
/**
|
||||
* The display of line endings.
|
||||
*/
|
||||
@StringDef( {
|
||||
LINE_CAP_BUTT,
|
||||
LINE_CAP_ROUND,
|
||||
LINE_CAP_SQUARE,
|
||||
})
|
||||
@StringDef({
|
||||
LINE_CAP_BUTT,
|
||||
LINE_CAP_ROUND,
|
||||
LINE_CAP_SQUARE,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface LINE_CAP {
|
||||
}
|
||||
public @interface LINE_CAP {}
|
||||
|
||||
// LINE_JOIN: The display of lines when joining.
|
||||
|
||||
/**
|
||||
* A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the
|
||||
* line's width.
|
||||
* A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width.
|
||||
*/
|
||||
public static final String LINE_JOIN_BEVEL = "bevel";
|
||||
/**
|
||||
* A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's
|
||||
* width and centered on the endpoint of the line.
|
||||
* A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line.
|
||||
*/
|
||||
public static final String LINE_JOIN_ROUND = "round";
|
||||
/**
|
||||
* A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until
|
||||
* they meet.
|
||||
* A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet.
|
||||
*/
|
||||
public static final String LINE_JOIN_MITER = "miter";
|
||||
|
||||
/**
|
||||
* The display of lines when joining.
|
||||
*/
|
||||
@StringDef( {
|
||||
LINE_JOIN_BEVEL,
|
||||
LINE_JOIN_ROUND,
|
||||
LINE_JOIN_MITER,
|
||||
})
|
||||
@StringDef({
|
||||
LINE_JOIN_BEVEL,
|
||||
LINE_JOIN_ROUND,
|
||||
LINE_JOIN_MITER,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface LINE_JOIN {
|
||||
}
|
||||
public @interface LINE_JOIN {}
|
||||
|
||||
// SYMBOL_PLACEMENT: Label placement relative to its geometry.
|
||||
|
||||
@@ -103,44 +96,38 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Label placement relative to its geometry.
|
||||
*/
|
||||
@StringDef( {
|
||||
SYMBOL_PLACEMENT_POINT,
|
||||
SYMBOL_PLACEMENT_LINE,
|
||||
})
|
||||
@StringDef({
|
||||
SYMBOL_PLACEMENT_POINT,
|
||||
SYMBOL_PLACEMENT_LINE,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface SYMBOL_PLACEMENT {
|
||||
}
|
||||
public @interface SYMBOL_PLACEMENT {}
|
||||
|
||||
// ICON_ROTATION_ALIGNMENT: In combination with `symbol-placement`, determines the rotation behavior of icons.
|
||||
|
||||
/**
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, aligns icons east-west. When
|
||||
* {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, aligns icon x-axes with the line.
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, aligns icons east-west. When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, aligns icon x-axes with the line.
|
||||
*/
|
||||
public static final String ICON_ROTATION_ALIGNMENT_MAP = "map";
|
||||
/**
|
||||
* Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of
|
||||
* {@link SYMBOL_PLACEMENT}.
|
||||
* Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of {@link SYMBOL_PLACEMENT}.
|
||||
*/
|
||||
public static final String ICON_ROTATION_ALIGNMENT_VIEWPORT = "viewport";
|
||||
/**
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, this is equivalent to
|
||||
* {@link Property#ICON_ROTATION_ALIGNMENT_VIEWPORT}. When {@link SYMBOL_PLACEMENT} is set to
|
||||
* {@link Property#SYMBOL_PLACEMENT_LINE}, this is equivalent to {@link Property#ICON_ROTATION_ALIGNMENT_MAP}.
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, this is equivalent to {@link Property#ICON_ROTATION_ALIGNMENT_VIEWPORT}. When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, this is equivalent to {@link Property#ICON_ROTATION_ALIGNMENT_MAP}.
|
||||
*/
|
||||
public static final String ICON_ROTATION_ALIGNMENT_AUTO = "auto";
|
||||
|
||||
/**
|
||||
* In combination with `symbol-placement`, determines the rotation behavior of icons.
|
||||
*/
|
||||
@StringDef( {
|
||||
ICON_ROTATION_ALIGNMENT_MAP,
|
||||
ICON_ROTATION_ALIGNMENT_VIEWPORT,
|
||||
ICON_ROTATION_ALIGNMENT_AUTO,
|
||||
})
|
||||
@StringDef({
|
||||
ICON_ROTATION_ALIGNMENT_MAP,
|
||||
ICON_ROTATION_ALIGNMENT_VIEWPORT,
|
||||
ICON_ROTATION_ALIGNMENT_AUTO,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ICON_ROTATION_ALIGNMENT {
|
||||
}
|
||||
public @interface ICON_ROTATION_ALIGNMENT {}
|
||||
|
||||
// ICON_TEXT_FIT: Scales the icon to fit around the associated text.
|
||||
|
||||
@@ -164,15 +151,14 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Scales the icon to fit around the associated text.
|
||||
*/
|
||||
@StringDef( {
|
||||
ICON_TEXT_FIT_NONE,
|
||||
ICON_TEXT_FIT_WIDTH,
|
||||
ICON_TEXT_FIT_HEIGHT,
|
||||
ICON_TEXT_FIT_BOTH,
|
||||
})
|
||||
@StringDef({
|
||||
ICON_TEXT_FIT_NONE,
|
||||
ICON_TEXT_FIT_WIDTH,
|
||||
ICON_TEXT_FIT_HEIGHT,
|
||||
ICON_TEXT_FIT_BOTH,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ICON_TEXT_FIT {
|
||||
}
|
||||
public @interface ICON_TEXT_FIT {}
|
||||
|
||||
// TEXT_PITCH_ALIGNMENT: Orientation of text when map is pitched.
|
||||
|
||||
@@ -192,46 +178,39 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Orientation of text when map is pitched.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_PITCH_ALIGNMENT_MAP,
|
||||
TEXT_PITCH_ALIGNMENT_VIEWPORT,
|
||||
TEXT_PITCH_ALIGNMENT_AUTO,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_PITCH_ALIGNMENT_MAP,
|
||||
TEXT_PITCH_ALIGNMENT_VIEWPORT,
|
||||
TEXT_PITCH_ALIGNMENT_AUTO,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_PITCH_ALIGNMENT {
|
||||
}
|
||||
public @interface TEXT_PITCH_ALIGNMENT {}
|
||||
|
||||
// TEXT_ROTATION_ALIGNMENT: In combination with `symbol-placement`, determines the rotation behavior of the individual
|
||||
// glyphs forming the text.
|
||||
// TEXT_ROTATION_ALIGNMENT: In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.
|
||||
|
||||
/**
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, aligns text east-west. When
|
||||
* {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, aligns text x-axes with the line.
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, aligns text east-west. When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, aligns text x-axes with the line.
|
||||
*/
|
||||
public static final String TEXT_ROTATION_ALIGNMENT_MAP = "map";
|
||||
/**
|
||||
* Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of
|
||||
* {@link SYMBOL_PLACEMENT}.
|
||||
* Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of {@link SYMBOL_PLACEMENT}.
|
||||
*/
|
||||
public static final String TEXT_ROTATION_ALIGNMENT_VIEWPORT = "viewport";
|
||||
/**
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, this is equivalent to
|
||||
* {@link Property#TEXT_ROTATION_ALIGNMENT_VIEWPORT}. When {@link SYMBOL_PLACEMENT} is set to
|
||||
* {@link Property#SYMBOL_PLACEMENT_LINE}, this is equivalent to {@link Property#TEXT_ROTATION_ALIGNMENT_MAP}.
|
||||
* When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_POINT}, this is equivalent to {@link Property#TEXT_ROTATION_ALIGNMENT_VIEWPORT}. When {@link SYMBOL_PLACEMENT} is set to {@link Property#SYMBOL_PLACEMENT_LINE}, this is equivalent to {@link Property#TEXT_ROTATION_ALIGNMENT_MAP}.
|
||||
*/
|
||||
public static final String TEXT_ROTATION_ALIGNMENT_AUTO = "auto";
|
||||
|
||||
/**
|
||||
* In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_ROTATION_ALIGNMENT_MAP,
|
||||
TEXT_ROTATION_ALIGNMENT_VIEWPORT,
|
||||
TEXT_ROTATION_ALIGNMENT_AUTO,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_ROTATION_ALIGNMENT_MAP,
|
||||
TEXT_ROTATION_ALIGNMENT_VIEWPORT,
|
||||
TEXT_ROTATION_ALIGNMENT_AUTO,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_ROTATION_ALIGNMENT {
|
||||
}
|
||||
public @interface TEXT_ROTATION_ALIGNMENT {}
|
||||
|
||||
// TEXT_JUSTIFY: Text justification options.
|
||||
|
||||
@@ -251,14 +230,13 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Text justification options.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_JUSTIFY_LEFT,
|
||||
TEXT_JUSTIFY_CENTER,
|
||||
TEXT_JUSTIFY_RIGHT,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_JUSTIFY_LEFT,
|
||||
TEXT_JUSTIFY_CENTER,
|
||||
TEXT_JUSTIFY_RIGHT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_JUSTIFY {
|
||||
}
|
||||
public @interface TEXT_JUSTIFY {}
|
||||
|
||||
// TEXT_ANCHOR: Part of the text placed closest to the anchor.
|
||||
|
||||
@@ -302,20 +280,19 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Part of the text placed closest to the anchor.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_ANCHOR_CENTER,
|
||||
TEXT_ANCHOR_LEFT,
|
||||
TEXT_ANCHOR_RIGHT,
|
||||
TEXT_ANCHOR_TOP,
|
||||
TEXT_ANCHOR_BOTTOM,
|
||||
TEXT_ANCHOR_TOP_LEFT,
|
||||
TEXT_ANCHOR_TOP_RIGHT,
|
||||
TEXT_ANCHOR_BOTTOM_LEFT,
|
||||
TEXT_ANCHOR_BOTTOM_RIGHT,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_ANCHOR_CENTER,
|
||||
TEXT_ANCHOR_LEFT,
|
||||
TEXT_ANCHOR_RIGHT,
|
||||
TEXT_ANCHOR_TOP,
|
||||
TEXT_ANCHOR_BOTTOM,
|
||||
TEXT_ANCHOR_TOP_LEFT,
|
||||
TEXT_ANCHOR_TOP_RIGHT,
|
||||
TEXT_ANCHOR_BOTTOM_LEFT,
|
||||
TEXT_ANCHOR_BOTTOM_RIGHT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_ANCHOR {
|
||||
}
|
||||
public @interface TEXT_ANCHOR {}
|
||||
|
||||
// TEXT_TRANSFORM: Specifies how to capitalize text, similar to the CSS `text-transform` property.
|
||||
|
||||
@@ -335,14 +312,13 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Specifies how to capitalize text, similar to the CSS `text-transform` property.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_TRANSFORM_NONE,
|
||||
TEXT_TRANSFORM_UPPERCASE,
|
||||
TEXT_TRANSFORM_LOWERCASE,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_TRANSFORM_NONE,
|
||||
TEXT_TRANSFORM_UPPERCASE,
|
||||
TEXT_TRANSFORM_LOWERCASE,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_TRANSFORM {
|
||||
}
|
||||
public @interface TEXT_TRANSFORM {}
|
||||
|
||||
// FILL_TRANSLATE_ANCHOR: Controls the translation reference point.
|
||||
|
||||
@@ -358,13 +334,12 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the translation reference point.
|
||||
*/
|
||||
@StringDef( {
|
||||
FILL_TRANSLATE_ANCHOR_MAP,
|
||||
FILL_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
FILL_TRANSLATE_ANCHOR_MAP,
|
||||
FILL_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface FILL_TRANSLATE_ANCHOR {
|
||||
}
|
||||
public @interface FILL_TRANSLATE_ANCHOR {}
|
||||
|
||||
// LINE_TRANSLATE_ANCHOR: Controls the translation reference point.
|
||||
|
||||
@@ -380,13 +355,12 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the translation reference point.
|
||||
*/
|
||||
@StringDef( {
|
||||
LINE_TRANSLATE_ANCHOR_MAP,
|
||||
LINE_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
LINE_TRANSLATE_ANCHOR_MAP,
|
||||
LINE_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface LINE_TRANSLATE_ANCHOR {
|
||||
}
|
||||
public @interface LINE_TRANSLATE_ANCHOR {}
|
||||
|
||||
// ICON_TRANSLATE_ANCHOR: Controls the translation reference point.
|
||||
|
||||
@@ -402,13 +376,12 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the translation reference point.
|
||||
*/
|
||||
@StringDef( {
|
||||
ICON_TRANSLATE_ANCHOR_MAP,
|
||||
ICON_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
ICON_TRANSLATE_ANCHOR_MAP,
|
||||
ICON_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ICON_TRANSLATE_ANCHOR {
|
||||
}
|
||||
public @interface ICON_TRANSLATE_ANCHOR {}
|
||||
|
||||
// TEXT_TRANSLATE_ANCHOR: Controls the translation reference point.
|
||||
|
||||
@@ -424,13 +397,12 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the translation reference point.
|
||||
*/
|
||||
@StringDef( {
|
||||
TEXT_TRANSLATE_ANCHOR_MAP,
|
||||
TEXT_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
TEXT_TRANSLATE_ANCHOR_MAP,
|
||||
TEXT_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface TEXT_TRANSLATE_ANCHOR {
|
||||
}
|
||||
public @interface TEXT_TRANSLATE_ANCHOR {}
|
||||
|
||||
// CIRCLE_TRANSLATE_ANCHOR: Controls the translation reference point.
|
||||
|
||||
@@ -446,13 +418,12 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the translation reference point.
|
||||
*/
|
||||
@StringDef( {
|
||||
CIRCLE_TRANSLATE_ANCHOR_MAP,
|
||||
CIRCLE_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
CIRCLE_TRANSLATE_ANCHOR_MAP,
|
||||
CIRCLE_TRANSLATE_ANCHOR_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface CIRCLE_TRANSLATE_ANCHOR {
|
||||
}
|
||||
public @interface CIRCLE_TRANSLATE_ANCHOR {}
|
||||
|
||||
// CIRCLE_PITCH_SCALE: Controls the scaling behavior of the circle when the map is pitched.
|
||||
|
||||
@@ -468,20 +439,14 @@ public abstract class Property<T> {
|
||||
/**
|
||||
* Controls the scaling behavior of the circle when the map is pitched.
|
||||
*/
|
||||
@StringDef( {
|
||||
CIRCLE_PITCH_SCALE_MAP,
|
||||
CIRCLE_PITCH_SCALE_VIEWPORT,
|
||||
})
|
||||
@StringDef({
|
||||
CIRCLE_PITCH_SCALE_MAP,
|
||||
CIRCLE_PITCH_SCALE_VIEWPORT,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface CIRCLE_PITCH_SCALE {
|
||||
}
|
||||
public @interface CIRCLE_PITCH_SCALE {}
|
||||
|
||||
// Class definition
|
||||
public final String name;
|
||||
public final T value;
|
||||
|
||||
/* package */ Property(String name, T value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
private Property() {
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,10 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.Function;
|
||||
|
||||
import timber.log.Timber;
|
||||
|
||||
/**
|
||||
@@ -9,9 +12,11 @@ import timber.log.Timber;
|
||||
*/
|
||||
public class PropertyValue<T> {
|
||||
|
||||
private final Object value;
|
||||
public final String name;
|
||||
public final T value;
|
||||
|
||||
/* package */ PropertyValue(Object value) {
|
||||
/* package */ PropertyValue(@NonNull String name, T value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@@ -28,10 +33,10 @@ public class PropertyValue<T> {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Function<T> getFunction() {
|
||||
public Function<?, T> getFunction() {
|
||||
if (isFunction()) {
|
||||
// noinspection unchecked
|
||||
return (Function<T>) value;
|
||||
return (Function<?, T>) value;
|
||||
} else {
|
||||
Timber.w("not a function, try value");
|
||||
return null;
|
||||
@@ -51,7 +56,6 @@ public class PropertyValue<T> {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s (%s)", getClass().getSimpleName(), value != null
|
||||
? value.getClass().getSimpleName() : null);
|
||||
return String.format("%s: %s", name, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
|
||||
import static com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor;
|
||||
|
||||
/**
|
||||
* Raster map textures such as satellite imagery.
|
||||
*
|
||||
@@ -59,7 +63,7 @@ public class RasterLayer extends Layer {
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public RasterLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public RasterLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -73,7 +77,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-opacity", nativeGetRasterOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,7 +87,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterHueRotate() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterHueRotate());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-hue-rotate", nativeGetRasterHueRotate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,7 +97,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterBrightnessMin() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterBrightnessMin());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-brightness-min", nativeGetRasterBrightnessMin());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -103,7 +107,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterBrightnessMax() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterBrightnessMax());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-brightness-max", nativeGetRasterBrightnessMax());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -113,7 +117,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterSaturation() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterSaturation());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-saturation", nativeGetRasterSaturation());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -123,7 +127,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterContrast() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterContrast());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-contrast", nativeGetRasterContrast());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -133,7 +137,7 @@ public class RasterLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getRasterFadeDuration() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetRasterFadeDuration());
|
||||
return (PropertyValue<Float>) new PropertyValue("raster-fade-duration", nativeGetRasterFadeDuration());
|
||||
}
|
||||
|
||||
private native Object nativeGetRasterOpacity();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
@@ -96,14 +97,13 @@ public class SymbolLayer extends Layer {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public SymbolLayer withProperties(@NonNull Property<?>... properties) {
|
||||
public SymbolLayer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getSymbolPlacement() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetSymbolPlacement());
|
||||
return (PropertyValue<String>) new PropertyValue("symbol-placement", nativeGetSymbolPlacement());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +127,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getSymbolSpacing() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetSymbolSpacing());
|
||||
return (PropertyValue<Float>) new PropertyValue("symbol-spacing", nativeGetSymbolSpacing());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,7 +137,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getSymbolAvoidEdges() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetSymbolAvoidEdges());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("symbol-avoid-edges", nativeGetSymbolAvoidEdges());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,7 +147,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getIconAllowOverlap() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetIconAllowOverlap());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("icon-allow-overlap", nativeGetIconAllowOverlap());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,7 +157,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getIconIgnorePlacement() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetIconIgnorePlacement());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("icon-ignore-placement", nativeGetIconIgnorePlacement());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -167,7 +167,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getIconOptional() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetIconOptional());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("icon-optional", nativeGetIconOptional());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,7 +177,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconRotationAlignment() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconRotationAlignment());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-rotation-alignment", nativeGetIconRotationAlignment());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -187,7 +187,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconSize() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconSize());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-size", nativeGetIconSize());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -197,7 +197,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconTextFit() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconTextFit());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-text-fit", nativeGetIconTextFit());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,7 +207,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getIconTextFitPadding() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetIconTextFitPadding());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("icon-text-fit-padding", nativeGetIconTextFitPadding());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -217,7 +217,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconImage() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconImage());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-image", nativeGetIconImage());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -227,7 +227,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconRotate() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconRotate());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-rotate", nativeGetIconRotate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -237,7 +237,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconPadding() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconPadding());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-padding", nativeGetIconPadding());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -247,7 +247,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getIconKeepUpright() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetIconKeepUpright());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("icon-keep-upright", nativeGetIconKeepUpright());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -257,7 +257,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getIconOffset() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetIconOffset());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("icon-offset", nativeGetIconOffset());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -267,7 +267,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextPitchAlignment() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextPitchAlignment());
|
||||
return (PropertyValue<String>) new PropertyValue("text-pitch-alignment", nativeGetTextPitchAlignment());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,7 +277,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextRotationAlignment() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextRotationAlignment());
|
||||
return (PropertyValue<String>) new PropertyValue("text-rotation-alignment", nativeGetTextRotationAlignment());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -287,7 +287,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextField() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextField());
|
||||
return (PropertyValue<String>) new PropertyValue("text-field", nativeGetTextField());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -297,7 +297,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String[]> getTextFont() {
|
||||
return (PropertyValue<String[]>) new PropertyValue(nativeGetTextFont());
|
||||
return (PropertyValue<String[]>) new PropertyValue("text-font", nativeGetTextFont());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -307,7 +307,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextSize() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextSize());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-size", nativeGetTextSize());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -317,7 +317,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextMaxWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextMaxWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-max-width", nativeGetTextMaxWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -327,7 +327,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextLineHeight() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextLineHeight());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-line-height", nativeGetTextLineHeight());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -337,7 +337,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextLetterSpacing() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextLetterSpacing());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-letter-spacing", nativeGetTextLetterSpacing());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -347,7 +347,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextJustify() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextJustify());
|
||||
return (PropertyValue<String>) new PropertyValue("text-justify", nativeGetTextJustify());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -357,7 +357,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("text-anchor", nativeGetTextAnchor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -367,7 +367,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextMaxAngle() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextMaxAngle());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-max-angle", nativeGetTextMaxAngle());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -377,7 +377,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextRotate() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextRotate());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-rotate", nativeGetTextRotate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -387,7 +387,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextPadding() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextPadding());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-padding", nativeGetTextPadding());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -397,7 +397,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getTextKeepUpright() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetTextKeepUpright());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("text-keep-upright", nativeGetTextKeepUpright());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -407,7 +407,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextTransform() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextTransform());
|
||||
return (PropertyValue<String>) new PropertyValue("text-transform", nativeGetTextTransform());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -417,7 +417,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getTextOffset() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetTextOffset());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("text-offset", nativeGetTextOffset());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -427,7 +427,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getTextAllowOverlap() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetTextAllowOverlap());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("text-allow-overlap", nativeGetTextAllowOverlap());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -437,7 +437,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getTextIgnorePlacement() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetTextIgnorePlacement());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("text-ignore-placement", nativeGetTextIgnorePlacement());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -447,7 +447,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Boolean> getTextOptional() {
|
||||
return (PropertyValue<Boolean>) new PropertyValue(nativeGetTextOptional());
|
||||
return (PropertyValue<Boolean>) new PropertyValue("text-optional", nativeGetTextOptional());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -457,7 +457,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-opacity", nativeGetIconOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -467,7 +467,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconColor());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-color", nativeGetIconColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -494,7 +494,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconHaloColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconHaloColor());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-halo-color", nativeGetIconHaloColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -521,7 +521,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconHaloWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconHaloWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-halo-width", nativeGetIconHaloWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -531,7 +531,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getIconHaloBlur() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetIconHaloBlur());
|
||||
return (PropertyValue<Float>) new PropertyValue("icon-halo-blur", nativeGetIconHaloBlur());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -541,7 +541,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getIconTranslate() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetIconTranslate());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("icon-translate", nativeGetIconTranslate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -551,7 +551,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getIconTranslateAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetIconTranslateAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("icon-translate-anchor", nativeGetIconTranslateAnchor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -561,7 +561,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextOpacity() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextOpacity());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-opacity", nativeGetTextOpacity());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -571,7 +571,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextColor());
|
||||
return (PropertyValue<String>) new PropertyValue("text-color", nativeGetTextColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -598,7 +598,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextHaloColor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextHaloColor());
|
||||
return (PropertyValue<String>) new PropertyValue("text-halo-color", nativeGetTextHaloColor());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -625,7 +625,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextHaloWidth() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextHaloWidth());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-halo-width", nativeGetTextHaloWidth());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -635,7 +635,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float> getTextHaloBlur() {
|
||||
return (PropertyValue<Float>) new PropertyValue(nativeGetTextHaloBlur());
|
||||
return (PropertyValue<Float>) new PropertyValue("text-halo-blur", nativeGetTextHaloBlur());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -645,7 +645,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<Float[]> getTextTranslate() {
|
||||
return (PropertyValue<Float[]>) new PropertyValue(nativeGetTextTranslate());
|
||||
return (PropertyValue<Float[]>) new PropertyValue("text-translate", nativeGetTextTranslate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -655,7 +655,7 @@ public class SymbolLayer extends Layer {
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<String> getTextTranslateAnchor() {
|
||||
return (PropertyValue<String>) new PropertyValue(nativeGetTextTranslateAnchor());
|
||||
return (PropertyValue<String>) new PropertyValue("text-translate-anchor", nativeGetTextTranslateAnchor());
|
||||
}
|
||||
|
||||
private native Object nativeGetSymbolPlacement();
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
const doc = locals.doc;
|
||||
-%>
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.UiThread;
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.UiThread;
|
||||
|
||||
import static com.mapbox.mapboxsdk.utils.ColorUtils.*;
|
||||
import static com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor;
|
||||
|
||||
/**
|
||||
* <%- doc %>
|
||||
@@ -21,151 +21,153 @@ import static com.mapbox.mapboxsdk.utils.ColorUtils.*;
|
||||
@UiThread
|
||||
public class <%- camelize(type) %>Layer extends Layer {
|
||||
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param nativePtr pointer used by core
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(long nativePtr) {
|
||||
super(nativePtr);
|
||||
}
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param nativePtr pointer used by core
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(long nativePtr) {
|
||||
super(nativePtr);
|
||||
}
|
||||
|
||||
<% if (type === 'background') { -%>
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param layerId the id of the layer
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(String layerId) {
|
||||
initialize(layerId);
|
||||
}
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param layerId the id of the layer
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(String layerId) {
|
||||
initialize(layerId);
|
||||
}
|
||||
|
||||
protected native void initialize(String layerId);
|
||||
|
||||
protected native void initialize(String layerId);
|
||||
<% } else { -%>
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param layerId the id of the layer
|
||||
* @param sourceId the id of the source
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(String layerId, String sourceId) {
|
||||
initialize(layerId, sourceId);
|
||||
}
|
||||
/**
|
||||
* Creates a <%- camelize(type) %>Layer.
|
||||
*
|
||||
* @param layerId the id of the layer
|
||||
* @param sourceId the id of the source
|
||||
*/
|
||||
public <%- camelize(type) %>Layer(String layerId, String sourceId) {
|
||||
initialize(layerId, sourceId);
|
||||
}
|
||||
|
||||
protected native void initialize(String layerId, String sourceId);
|
||||
protected native void initialize(String layerId, String sourceId);
|
||||
|
||||
/**
|
||||
* Set the source layer.
|
||||
*
|
||||
* @param sourceLayer the source layer to set
|
||||
*/
|
||||
public void setSourceLayer(String sourceLayer) {
|
||||
nativeSetSourceLayer(sourceLayer);
|
||||
}
|
||||
/**
|
||||
* Set the source layer.
|
||||
*
|
||||
* @param sourceLayer the source layer to set
|
||||
*/
|
||||
public void setSourceLayer(String sourceLayer) {
|
||||
nativeSetSourceLayer(sourceLayer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the source Layer.
|
||||
*
|
||||
* @param sourceLayer the source layer to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withSourceLayer(String sourceLayer) {
|
||||
setSourceLayer(sourceLayer);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the source Layer.
|
||||
*
|
||||
* @param sourceLayer the source layer to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withSourceLayer(String sourceLayer) {
|
||||
setSourceLayer(sourceLayer);
|
||||
return this;
|
||||
}
|
||||
<% } -%>
|
||||
<% if (type !== 'background' && type !== 'raster') { -%>
|
||||
/**
|
||||
* Set a single filter.
|
||||
*
|
||||
* @param filter the filter to set
|
||||
*/
|
||||
public void setFilter(Filter.Statement filter) {
|
||||
this.setFilter(filter.toArray());
|
||||
}
|
||||
/**
|
||||
* Set a single filter.
|
||||
*
|
||||
* @param filter the filter to set
|
||||
*/
|
||||
public void setFilter(Filter.Statement filter) {
|
||||
this.setFilter(filter.toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* Set an array of filters.
|
||||
*
|
||||
* @param filter the filter array to set
|
||||
*/
|
||||
public void setFilter(Object[] filter) {
|
||||
nativeSetFilter(filter);
|
||||
}
|
||||
/**
|
||||
* Set an array of filters.
|
||||
*
|
||||
* @param filter the filter array to set
|
||||
*/
|
||||
public void setFilter(Object[] filter) {
|
||||
nativeSetFilter(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set an array of filters.
|
||||
*
|
||||
* @param filter tthe filter array to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withFilter(Object[] filter) {
|
||||
setFilter(filter);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Set an array of filters.
|
||||
*
|
||||
* @param filter tthe filter array to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withFilter(Object[] filter) {
|
||||
setFilter(filter);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a single filter.
|
||||
*
|
||||
* @param filter the filter to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withFilter(Filter.Statement filter) {
|
||||
setFilter(filter);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Set a single filter.
|
||||
*
|
||||
* @param filter the filter to set
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withFilter(Filter.Statement filter) {
|
||||
setFilter(filter);
|
||||
return this;
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withProperties(@NonNull PropertyValue<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a property or properties.
|
||||
*
|
||||
* @param properties the var-args properties
|
||||
* @return This
|
||||
*/
|
||||
public <%- camelize(type) %>Layer withProperties(@NonNull Property<?>... properties) {
|
||||
setProperties(properties);
|
||||
return this;
|
||||
}
|
||||
|
||||
// Property getters
|
||||
// Property getters
|
||||
|
||||
<% for (const property of properties) { -%>
|
||||
/**
|
||||
* Get the <%- camelize(property.name) %> property
|
||||
*
|
||||
* @return property wrapper value around <%- propertyType(property) %>
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<<%- propertyType(property) %>> get<%- camelize(property.name) %>() {
|
||||
return (PropertyValue<<%- propertyType(property) %>>) new PropertyValue(nativeGet<%- camelize(property.name) %>());
|
||||
}
|
||||
<% if (property.type == 'color') { -%>
|
||||
/**
|
||||
* <%- property.doc %>
|
||||
*
|
||||
* @return int representation of a rgba string color
|
||||
* @throws RuntimeException thrown if property isn't a value
|
||||
*/
|
||||
@ColorInt
|
||||
public int get<%- camelize(property.name) %>AsInt() {
|
||||
PropertyValue<<%- propertyType(property) %>> value = get<%- camelize(property.name) %>();
|
||||
if (value.isValue()) {
|
||||
return rgbaToColor(value.getValue());
|
||||
} else {
|
||||
throw new RuntimeException("<%- property.name %> was set as a Function");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get the <%- camelize(property.name) %> property
|
||||
*
|
||||
* @return property wrapper value around <%- propertyType(property) %>
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public PropertyValue<<%- propertyType(property) %>> get<%- camelize(property.name) %>() {
|
||||
return (PropertyValue<<%- propertyType(property) %>>) new PropertyValue("<%- property.name %>", nativeGet<%- camelize(property.name) %>());
|
||||
}
|
||||
<% if (property.type == 'color') { -%>
|
||||
|
||||
<% } -%>
|
||||
/**
|
||||
* <%- property.doc %>
|
||||
*
|
||||
* @return int representation of a rgba string color
|
||||
* @throws RuntimeException thrown if property isn't a value
|
||||
*/
|
||||
@ColorInt
|
||||
public int get<%- camelize(property.name) %>AsInt() {
|
||||
PropertyValue<<%- propertyType(property) %>> value = get<%- camelize(property.name) %>();
|
||||
if (value.isValue()) {
|
||||
return rgbaToColor(value.getValue());
|
||||
} else {
|
||||
throw new RuntimeException("<%- property.name %> was set as a Function");
|
||||
}
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
|
||||
<% } -%>
|
||||
<% for (const property of properties) { -%>
|
||||
private native Object nativeGet<%- camelize(property.name) %>();
|
||||
private native Object nativeGet<%- camelize(property.name) %>();
|
||||
|
||||
<% } -%>
|
||||
|
||||
@Override
|
||||
protected native void finalize() throws Throwable;
|
||||
@Override
|
||||
protected native void finalize() throws Throwable;
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
const properties = locals.properties;
|
||||
-%>
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.support.annotation.StringDef;
|
||||
@@ -12,56 +13,49 @@ import java.lang.annotation.RetentionPolicy;
|
||||
/**
|
||||
* Paint/Layout properties for Layer
|
||||
*/
|
||||
public abstract class Property<T> {
|
||||
public final class Property {
|
||||
|
||||
// VISIBILITY: Whether this layer is displayed.
|
||||
// VISIBILITY: Whether this layer is displayed.
|
||||
|
||||
/**
|
||||
* The layer is shown.
|
||||
*/
|
||||
public static final String VISIBLE = "visible";
|
||||
/**
|
||||
* The layer is hidden.
|
||||
*/
|
||||
public static final String NONE = "none";
|
||||
/**
|
||||
* The layer is shown.
|
||||
*/
|
||||
public static final String VISIBLE = "visible";
|
||||
/**
|
||||
* The layer is hidden.
|
||||
*/
|
||||
public static final String NONE = "none";
|
||||
|
||||
@StringDef({
|
||||
VISIBLE,
|
||||
NONE
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface VISIBILITY {}
|
||||
@StringDef({
|
||||
VISIBLE,
|
||||
NONE
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface VISIBILITY {}
|
||||
|
||||
<% for (const property of properties) { -%>
|
||||
// <%- snakeCaseUpper(property.name) %>: <%- property.doc %>
|
||||
// <%- snakeCaseUpper(property.name) %>: <%- property.doc %>
|
||||
|
||||
<% for (const value in property.values) { -%>
|
||||
/**
|
||||
* <%- propertyValueDoc(property, value) %>
|
||||
*/
|
||||
public static final String <%- snakeCaseUpper(property.name) %>_<%- snakeCaseUpper(value) %> = "<%- value %>";
|
||||
/**
|
||||
* <%- propertyValueDoc(property, value) %>
|
||||
*/
|
||||
public static final String <%- snakeCaseUpper(property.name) %>_<%- snakeCaseUpper(value) %> = "<%- value %>";
|
||||
<% } -%>
|
||||
|
||||
/**
|
||||
* <%- property.doc %>
|
||||
*/
|
||||
@StringDef({
|
||||
<% for (const value of Object.keys(property.values)) { -%>
|
||||
<%- snakeCaseUpper(property.name) %>_<%- snakeCaseUpper(value) %>,
|
||||
<% } -%>
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface <%- snakeCaseUpper(property.name) %> {}
|
||||
/**
|
||||
* <%- property.doc %>
|
||||
*/
|
||||
@StringDef({
|
||||
<% for (const value of Object.keys(property.values)) { -%>
|
||||
<%- snakeCaseUpper(property.name) %>_<%- snakeCaseUpper(value) %>,
|
||||
<% } -%>
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface <%- snakeCaseUpper(property.name) %> {}
|
||||
|
||||
<% } -%>
|
||||
|
||||
// Class definition
|
||||
public final String name;
|
||||
public final T value;
|
||||
|
||||
/* package */ Property(String name, T value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private Property() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,15 @@
|
||||
const layoutProperties = locals.layoutProperties;
|
||||
-%>
|
||||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`.
|
||||
|
||||
package com.mapbox.mapboxsdk.style.layers;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.support.annotation.ColorInt;
|
||||
|
||||
import com.mapbox.mapboxsdk.style.functions.Function;
|
||||
import com.mapbox.mapboxsdk.style.functions.CameraFunction;
|
||||
|
||||
/**
|
||||
* Constructs paint/layout properties for Layers
|
||||
*
|
||||
@@ -15,85 +19,121 @@ import android.support.annotation.ColorInt;
|
||||
*/
|
||||
public class PropertyFactory {
|
||||
|
||||
/**
|
||||
* Set the property visibility.
|
||||
*
|
||||
* @param value the visibility value
|
||||
* @return property wrapper around visibility
|
||||
*/
|
||||
public static Property<String> visibility(@Property.VISIBILITY String value) {
|
||||
return new LayoutProperty<>("visibility", value);
|
||||
}
|
||||
/**
|
||||
* Set the property visibility.
|
||||
*
|
||||
* @param value the visibility value
|
||||
* @return property wrapper around visibility
|
||||
*/
|
||||
public static PropertyValue<String> visibility(@Property.VISIBILITY String value) {
|
||||
return new LayoutPropertyValue<>("visibility", value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the property visibility.
|
||||
*
|
||||
* @param function the visibility function
|
||||
* @return property wrapper around a String function
|
||||
*/
|
||||
public static Property<Function<String>> visibility(Function<String> function) {
|
||||
return new LayoutProperty<>("visibility", function);
|
||||
}
|
||||
/**
|
||||
* Set the property visibility.
|
||||
*
|
||||
* @param <T> the function input type
|
||||
* @param function the visibility function
|
||||
* @return property wrapper around a String function
|
||||
*/
|
||||
public static <T> PropertyValue<Function<T, String>> visibility(Function<T, String> function) {
|
||||
return new LayoutPropertyValue<>("visibility", function);
|
||||
}
|
||||
|
||||
<% for (const property of paintProperties) { -%>
|
||||
<% if (property.type == 'color') { -%>
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a int color value
|
||||
* @return property wrapper around String color
|
||||
*/
|
||||
public static Property<String> <%- camelizeWithLeadingLowercase(property.name) %>(@ColorInt int value) {
|
||||
return new PaintProperty<>("<%- property.name %>", colorToRgbaString(value));
|
||||
}
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a int color value
|
||||
* @return property wrapper around String color
|
||||
*/
|
||||
public static PropertyValue<String> <%- camelizeWithLeadingLowercase(property.name) %>(@ColorInt int value) {
|
||||
return new PaintPropertyValue<>("<%- property.name %>", colorToRgbaString(value));
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a <%- propertyType(property) %> value
|
||||
* @return property wrapper around <%- propertyType(property) %>
|
||||
*/
|
||||
public static Property<<%- propertyType(property) %>> <%- camelizeWithLeadingLowercase(property.name) %>(<%- propertyTypeAnnotation(property) %><%- iff(() => propertyTypeAnnotation(property), " ") %><%- propertyType(property) %> value) {
|
||||
return new PaintProperty<>("<%- property.name %>", value);
|
||||
}
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a <%- propertyType(property) %> value
|
||||
* @return property wrapper around <%- propertyType(property) %>
|
||||
*/
|
||||
public static PropertyValue<<%- propertyType(property) %>> <%- camelizeWithLeadingLowercase(property.name) %>(<%- propertyTypeAnnotation(property) %><%- iff(() => propertyTypeAnnotation(property), " ") %><%- propertyType(property) %> value) {
|
||||
return new PaintPropertyValue<>("<%- property.name %>", value);
|
||||
}
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param function a wrapper function for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static Property<Function<<%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(Function<<%- propertyType(property) %>> function) {
|
||||
return new PaintProperty<>("<%- property.name %>", function);
|
||||
}
|
||||
<% if (supportsPropertyFunction(property)) { -%>
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param <T> the function input type
|
||||
* @param function a wrapper function for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static <T> PropertyValue<Function<T, <%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(Function<T, <%- propertyType(property) %>> function) {
|
||||
return new PaintPropertyValue<>("<%- property.name %>", function);
|
||||
}
|
||||
|
||||
<% } else if (supportsZoomFunction(property)) { -%>
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param <Z> the zoom parameter type
|
||||
* @param function a wrapper {@link CameraFunction} for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static <Z extends Number> PropertyValue<CameraFunction<Z, <%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(CameraFunction<Z, <%- propertyType(property) %>> function) {
|
||||
return new PaintPropertyValue<>("<%- property.name %>", function);
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
<% } -%>
|
||||
<% for (const property of layoutProperties) { -%>
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a <%- propertyType(property) %> value
|
||||
* @return property wrapper around <%- propertyType(property) %>
|
||||
*/
|
||||
public static Property<<%- propertyType(property) %>> <%- camelizeWithLeadingLowercase(property.name) %>(<%- propertyTypeAnnotation(property) %><%- iff(() => propertyTypeAnnotation(property), " ") %><%- propertyType(property) %> value) {
|
||||
return new LayoutProperty<>("<%- property.name %>", value);
|
||||
}
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param value a <%- propertyType(property) %> value
|
||||
* @return property wrapper around <%- propertyType(property) %>
|
||||
*/
|
||||
public static PropertyValue<<%- propertyType(property) %>> <%- camelizeWithLeadingLowercase(property.name) %>(<%- propertyTypeAnnotation(property) %><%- iff(() => propertyTypeAnnotation(property), " ") %><%- propertyType(property) %> value) {
|
||||
return new LayoutPropertyValue<>("<%- property.name %>", value);
|
||||
}
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param function a wrapper function for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static Property<Function<<%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(Function<<%- propertyType(property) %>> function) {
|
||||
return new LayoutProperty<>("<%- property.name %>", function);
|
||||
}
|
||||
|
||||
<% if (supportsPropertyFunction(property)) { -%>
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param <T> the function input type
|
||||
* @param function a wrapper function for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static <T> PropertyValue<Function<T, <%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(Function<T, <%- propertyType(property) %>> function) {
|
||||
return new LayoutPropertyValue<>("<%- property.name %>", function);
|
||||
}
|
||||
|
||||
<% } else if (supportsZoomFunction(property)) { -%>
|
||||
|
||||
/**
|
||||
* <%- propertyFactoryMethodDoc(property) %>
|
||||
*
|
||||
* @param <Z> the zoom parameter type
|
||||
* @param function a wrapper {@link CameraFunction} for <%- propertyType(property) %>
|
||||
* @return property wrapper around a <%- propertyType(property) %> function
|
||||
*/
|
||||
public static <Z extends Number> PropertyValue<CameraFunction<Z, <%- propertyType(property) %>>> <%- camelizeWithLeadingLowercase(property.name) %>(CameraFunction<Z, <%- propertyType(property) %>> function) {
|
||||
return new LayoutPropertyValue<>("<%- property.name %>", function);
|
||||
}
|
||||
|
||||
<% } -%>
|
||||
@SuppressLint("DefaultLocale")
|
||||
static String colorToRgbaString(@ColorInt int value) {
|
||||
return String.format("rgba(%d, %d, %d, %d)", (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF, (value >> 24) & 0xFF);
|
||||
}
|
||||
<% } -%>
|
||||
@SuppressLint("DefaultLocale")
|
||||
public static String colorToRgbaString(@ColorInt int value) {
|
||||
return String.format("rgba(%d, %d, %d, %d)", (value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF, (value >> 24) & 0xFF);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user