<% const type = locals.type; const properties = locals.properties; 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.ColorInt; import android.support.annotation.NonNull; import android.support.annotation.UiThread; import static com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor; import com.mapbox.mapboxsdk.style.layers.TransitionOptions; /** * <%- doc %> * * @see The online documentation */ @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); } <% if (type === 'background') { -%> /** * 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); <% } 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); } 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 * @return This */ public <%- camelize(type) %>Layer withSourceLayer(String sourceLayer) { setSourceLayer(sourceLayer); return this; } <% } -%> <% if (type !== 'background' && type !== 'raster' && type !== 'hillshade') { -%> /** * Get the source layer. * * @return sourceLayer the source layer to get */ public String getSourceLayer() { return nativeGetSourceLayer(); } /** * Set a single filter. * * @param filter the filter to set */ public void setFilter(Filter.Statement filter) { nativeSetFilter(filter.toArray()); } /** * 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; } // 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("<%- 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"); } } <% } -%> <% if (property.transition) { -%> /** * Get the <%- camelize(property.name) %> property transition options * * @return transition options for <%- propertyType(property) %> */ public TransitionOptions get<%- camelize(property.name) %>Transition() { return nativeGet<%- camelize(property.name) %>Transition(); } /** * Set the <%- camelize(property.name) %> property transition options * * @param options transition options for <%- propertyType(property) %> */ public void set<%- camelize(property.name) %>Transition(TransitionOptions options) { nativeSet<%- camelize(property.name) %>Transition(options.getDuration(), options.getDelay()); } <% } -%> <% } -%> <% for (const property of properties) { -%> private native Object nativeGet<%- camelize(property.name) %>(); <% if (property.transition) { -%> private native TransitionOptions nativeGet<%- camelize(property.name) %>Transition(); private native void nativeSet<%- camelize(property.name) %>Transition(long duration, long delay); <% } -%> <% } -%> @Override protected native void finalize() throws Throwable; }