break; case Map: value = array.getMap(index); break; case Array:
break; case Map: value = array.getMap(index); break; case Array:
public static List<Object> recursivelyDeconstructReadableArray(ReadableArray readableArray) { List<Object> deconstructedList = new ArrayList<>(readableArray.size()); for (int i = 0; i < readableArray.size(); i++) { ReadableType indexType = readableArray.getType(i); switch (indexType) { case Null: deconstructedList.add(i, null); break; case Boolean: deconstructedList.add(i, readableArray.getBoolean(i)); break; case Number: deconstructedList.add(i, readableArray.getDouble(i)); break; case String: deconstructedList.add(i, readableArray.getString(i)); break; case Map: deconstructedList.add(i, OAuthManagerModule.recursivelyDeconstructReadableMap(readableArray.getMap(i))); break; case Array: deconstructedList.add(i, OAuthManagerModule.recursivelyDeconstructReadableArray(readableArray.getArray(i))); break; default: throw new IllegalArgumentException("Could not convert object at index " + i + "."); } } return deconstructedList; } }
private static ArrayList<Object> toArrayList(ReadableArray array) { ArrayList<Object> arrayList = new ArrayList<>(array.size()); for (int i = 0, size = array.size(); i < size; i++) { switch (array.getType(i)) { case Null: arrayList.add(null); break; case Boolean: arrayList.add(array.getBoolean(i)); break; case Number: arrayList.add(array.getDouble(i)); break; case String: arrayList.add(array.getString(i)); break; case Map: arrayList.add(toHashMap(array.getMap(i))); break; case Array: arrayList.add(toArrayList(array.getArray(i))); break; default: throw new IllegalArgumentException("Could not convert object at index: " + i + "."); } } return arrayList; } }
@ReactProp(name = "layers") public void setLayers(MapView view, @Nullable ReadableArray layers) { Log.v(REACT_CLASS, "set layers"); if (layers == null || layers.size() < 1) { Log.v(REACT_CLASS, "set layers: adding default layer"); mapView.addLayer(new ArcGISTiledMapServiceLayer(DEFAULT_LAYER)); } else { mapView.removeAll(); for (int i = 0; i < layers.size(); i++) { ReadableMap layer = layers.getMap(i); String type = layer.getString("type"); String url = layer.getString("url"); if (!url.equals("")) { if (type.equals("ArcGISTiledMapServiceLayer")) { Log.v(REACT_CLASS, "set layers: adding ArcGISTiledMapServiceLayer:" + url); mapView.addLayer(new ArcGISTiledMapServiceLayer(url)); } else if (type.equals("ArcGISFeatureLayer")) { Log.v(REACT_CLASS, "set layers: adding ArcGISFeatureLayer:" + url); mapView.addLayer(new ArcGISFeatureLayer(url, ArcGISFeatureLayer.MODE.SNAPSHOT)); } else { Log.v(REACT_CLASS, "set layers: unrecognized layer: " + type); } } else { Log.v(REACT_CLASS, "set layers: invalid url:" + url); } } } }
/** * Convert a JavaScript stack trace (see {@code parseErrorStack} JS module) to an array of * {@link StackFrame}s. */ public static StackFrame[] convertJsStackTrace(@Nullable ReadableArray stack) { int size = stack != null ? stack.size() : 0; StackFrame[] result = new StackFrame[size]; for (int i = 0; i < size; i++) { ReadableMap frame = stack.getMap(i); String methodName = frame.getString("methodName"); String fileName = frame.getString("file"); int lineNumber = -1; if (frame.hasKey(LINE_NUMBER_KEY) && !frame.isNull(LINE_NUMBER_KEY)) { lineNumber = frame.getInt(LINE_NUMBER_KEY); } int columnNumber = -1; if (frame.hasKey(COLUMN_KEY) && !frame.isNull(COLUMN_KEY)) { columnNumber = frame.getInt(COLUMN_KEY); } result[i] = new StackFrameImpl(fileName, methodName, lineNumber, columnNumber); } return result; }