List of usage examples for com.facebook.react.bridge ReadableMap getType
@NonNull ReadableType getType(@NonNull String name);
From source file:com.adjust.nativemodule.AdjustUtil.java
License:Open Source License
/** * toObject extracts a value from a {@link ReadableMap} by its key, * and returns a POJO representing that object. * /*www .j a va 2 s .c om*/ * @param readableMap The Map to containing the value to be converted * @param key The key for the value to be converted * @return The converted POJO */ private static Object toObject(@Nullable ReadableMap readableMap, String key) { if (readableMap == null) { return null; } Object result = null; ReadableType readableType = readableMap.getType(key); switch (readableType) { case Null: result = null; break; case Boolean: result = readableMap.getBoolean(key); break; case Number: // Can be int or double. double tmp = readableMap.getDouble(key); if (tmp == (int) tmp) { result = (int) tmp; } else { result = tmp; } break; case String: result = readableMap.getString(key); break; case Map: result = toMap(readableMap.getMap(key)); break; case Array: result = toList(readableMap.getArray(key)); break; default: AdjustFactory.getLogger().error("Could not convert object with key: " + key + "."); } return result; }
From source file:com.amazonaws.reactnative.core.AWSRNClientMarshaller.java
License:Open Source License
public static Object toObject(@Nullable ReadableMap readableMap, String key) { if (readableMap == null) { return null; }// ww w . j av a 2 s.c o m Object result; final ReadableType readableType = readableMap.getType(key); switch (readableType) { case Null: result = key; break; case Boolean: result = readableMap.getBoolean(key); break; case Number: // Can be int or double. double tmp = readableMap.getDouble(key); if (tmp == (int) tmp) { result = (int) tmp; } else { result = tmp; } break; case String: result = readableMap.getString(key); break; case Map: result = readableMapToMap(readableMap.getMap(key)); break; case Array: result = readableArrayToList(readableMap.getArray(key)); break; default: throw new IllegalArgumentException("Could not convert object with key: " + key + "."); } return result; }
From source file:com.boundlessgeo.spatialconnect.jsbridge.RNSpatialConnect.java
License:Apache License
private HashMap<String, Object> convertMapToHashMap(ReadableMap readableMap) { HashMap<String, Object> json = new HashMap<>(); ReadableMapKeySetIterator iterator = readableMap.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); switch (readableMap.getType(key)) { case Null: json.put(key, null);//from w w w. j av a 2 s . c om break; case Boolean: json.put(key, readableMap.getBoolean(key)); break; case Number: json.put(key, readableMap.getDouble(key)); break; case String: json.put(key, readableMap.getString(key)); break; case Map: json.put(key, convertMapToHashMap(readableMap.getMap(key))); break; case Array: json.put(key, convertArrayToArrayList(readableMap.getArray(key))); break; } } return json; }
From source file:com.boundlessgeo.spatialconnect.jsbridge.SCBridge.java
License:Apache License
private static JSONObject convertMapToJson(ReadableMap readableMap) { JSONObject object = new JSONObject(); ReadableMapKeySetIterator iterator = readableMap.keySetIterator(); try {// ww w. j ava 2 s .c o m while (iterator.hasNextKey()) { String key = iterator.nextKey(); switch (readableMap.getType(key)) { case Null: object.put(key, JSONObject.NULL); break; case Boolean: object.put(key, readableMap.getBoolean(key)); break; case Number: object.put(key, readableMap.getDouble(key)); break; case String: object.put(key, readableMap.getString(key)); break; case Map: object.put(key, convertMapToJson(readableMap.getMap(key))); break; case Array: object.put(key, convertArrayToJson(readableMap.getArray(key))); break; } } } catch (JSONException e) { Log.e(LOG_TAG, "Could not convert to json"); e.printStackTrace(); } return object; }
From source file:com.farmisen.react_native_file_uploader.RCTFileUploaderModule.java
License:Open Source License
private void uploadFile(String path, ReadableMap settings, Callback callback) { HttpURLConnection connection = null; FileUploadCountingOutputStream outputStream = null; InputStream inputStream = null; String boundary = "*****" + UUID.randomUUID().toString() + "*****"; try {// ww w.ja va 2s .co m URL url = new URL(settings.getString(UPLOAD_URL_FIELD)); connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); String method = getStringParam(settings, METHOD_FIELD, "POST"); connection.setRequestMethod(method); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("User-Agent", "React Native File Uploader Android HTTP Client"); connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); String contentType = getStringParam(settings, CONTENT_TYPE_FIELD, "application/octet-stream"); String fileName = getStringParam(settings, FILE_NAME_FIELD, this.filenameForContentType(contentType)); String fieldName = getStringParam(settings, FIELD_NAME_FIELD, "file"); File file = new File(path); FileInputStream fileInputStream = new FileInputStream(file); int bytesRead, bytesAvailable, bufferSize; byte[] buffer; int maxBufferSize = MAX_BUFFER_SIZE; outputStream = new FileUploadCountingOutputStream(new DataOutputStream(connection.getOutputStream()), file.length(), settings.getString(URI_FIELD), this); outputStream.writeBytes(TWO_HYPHENS + boundary + LINE_END); outputStream.writeBytes("Content-Disposition: form-data; name=\"" + fieldName + "\"; filename=\"" + fileName + "\"" + LINE_END); outputStream.writeBytes("Content-Type: " + contentType + LINE_END); outputStream.writeBytes("Content-Transfer-Encoding: binary" + LINE_END); outputStream.writeBytes(LINE_END); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); buffer = new byte[bufferSize]; bytesRead = fileInputStream.read(buffer, 0, bufferSize); while (bytesRead > 0) { outputStream.write(buffer, 0, bufferSize); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); bytesRead = fileInputStream.read(buffer, 0, bufferSize); } outputStream.writeBytes(LINE_END); ReadableMap params = getMapParam(settings, "data", Arguments.createMap()); ReadableMapKeySetIterator keys = params.keySetIterator(); while (keys.hasNextKey()) { String key = keys.nextKey(); ReadableType type = params.getType(key); String value = null; switch (type) { case String: value = params.getString(key); break; case Number: value = Integer.toString(params.getInt(key)); break; default: callback.invoke(type.toString() + " type not supported.", null); break; } outputStream.writeBytes(TWO_HYPHENS + boundary + LINE_END); outputStream.writeBytes("Content-Disposition: form-data; name=\"" + key + "\"" + LINE_END); outputStream.writeBytes("Content-Type: text/plain" + LINE_END); outputStream.writeBytes(LINE_END + value + LINE_END); } outputStream.writeBytes(TWO_HYPHENS + boundary + TWO_HYPHENS + LINE_END); inputStream = connection.getInputStream(); String responseBody = this.streamToString(inputStream); fileInputStream.close(); inputStream.close(); outputStream.flush(); outputStream.close(); WritableMap result = Arguments.createMap(); result.putString("data", responseBody); result.putInt("status", connection.getResponseCode()); callback.invoke(null, result); } catch (Exception e) { callback.invoke(e.getLocalizedMessage(), null); } }
From source file:com.hijridatepicker.HijriDatePickerAndroidModule.java
License:Open Source License
private boolean parseOptionsWithKey(String ARG_KEY, ReadableMap options, Bundle args, Promise promise) { ReadableType argDateType = options.getType(ARG_KEY); if (ReadableType.String.equals(argDateType)) { try {/*w ww. ja v a 2 s . c om*/ long milliSeconds = 0; milliSeconds = (long) convertHijriDateToGregorianMilliseconds(options.getString(ARG_KEY)); args.putLong(ARG_KEY, milliSeconds); return true; } catch (PatternSyntaxException | IndexOutOfBoundsException | NumberFormatException e) { promise.reject(ERROR_PARSING_OPTIONS, "Exception happened while parsing " + ARG_KEY + " we only accept object of Date or String with the format \"dd-MM-yyyy\" in Hijri"); return false; } } else if (ReadableType.Number.equals(argDateType)) { args.putLong(ARG_KEY, (long) options.getDouble(ARG_KEY)); return true; } else { promise.reject(ERROR_PARSING_OPTIONS, "Exception happened while parsing " + ARG_KEY + " we only accept object of Date or String with the format \"dd-MM-yyyy\" in Hijri"); return false; } }
From source file:com.ibatimesheet.RNJSONUtils.java
License:Apache License
public static JSONObject convertMapToJson(ReadableMap readableMap) throws JSONException { JSONObject object = new JSONObject(); ReadableMapKeySetIterator iterator = readableMap.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); switch (readableMap.getType(key)) { case Null: object.put(key, JSONObject.NULL); break; case Boolean: object.put(key, readableMap.getBoolean(key)); break; case Number: object.put(key, readableMap.getDouble(key)); break; case String: object.put(key, readableMap.getString(key)); break; case Map: object.put(key, convertMapToJson(readableMap.getMap(key))); break; case Array: object.put(key, convertArrayToJson(readableMap.getArray(key))); break; }/*w w w. j a v a2 s . c o m*/ } return object; }
From source file:com.microsoft.appcenter.reactnative.analytics.ReactNativeUtils.java
License:Open Source License
public static JSONObject convertReadableMapToJsonObject(ReadableMap map) throws JSONException { JSONObject jsonObj = new JSONObject(); ReadableMapKeySetIterator it = map.keySetIterator(); while (it.hasNextKey()) { String key = it.nextKey(); ReadableType type = map.getType(key); switch (type) { case Map: jsonObj.put(key, convertReadableMapToJsonObject(map.getMap(key))); break; case Array: jsonObj.put(key, convertReadableArrayToJsonArray(map.getArray(key))); break; case String: jsonObj.put(key, map.getString(key)); break; case Number: Double number = map.getDouble(key); if ((number == Math.floor(number)) && !Double.isInfinite(number)) { jsonObj.put(key, number.longValue()); } else { jsonObj.put(key, number.doubleValue()); }//from w w w . j av a 2s. com break; case Boolean: jsonObj.put(key, map.getBoolean(key)); break; default: jsonObj.put(key, null); break; } } return jsonObj; }
From source file:com.microsoft.appcenter.reactnative.analytics.ReactNativeUtils.java
License:Open Source License
public static Map<String, String> convertReadableMapToStringMap(ReadableMap map) throws JSONException { Map<String, String> stringMap = new HashMap<>(); ReadableMapKeySetIterator it = map.keySetIterator(); while (it.hasNextKey()) { String key = it.nextKey(); ReadableType type = map.getType(key); // Only support storing strings. Non-string data must be stringified in JS. if (type == ReadableType.String) { stringMap.put(key, map.getString(key)); }/*from w ww . j a va2 s . c o m*/ } return stringMap; }
From source file:com.microsoft.appcenter.reactnative.appcenter.ReactNativeUtils.java
License:Open Source License
private static Object toObject(@Nullable ReadableMap readableMap, String key) { if (readableMap == null) { return null; }//from w w w. j a v a2 s. c o m Object result; ReadableType readableType = readableMap.getType(key); switch (readableType) { case Null: result = null; break; case Boolean: result = readableMap.getBoolean(key); break; case Number: // Can be int or double. double tmp = readableMap.getDouble(key); if (tmp == (int) tmp) { result = (int) tmp; } else { result = tmp; } break; case String: result = readableMap.getString(key); break; case Map: result = toMap(readableMap.getMap(key)); break; //case Array: // result = toList(readableMap.getArray(key)); // break; default: throw new IllegalArgumentException("Could not convert object with key: " + key + "."); } return result; }