summaryrefslogtreecommitdiff
path: root/src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-08-17 09:37:18 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-08-17 09:37:18 -0700
commitdd37e1328b736a11354a5847ad82c5f2551defa5 (patch)
tree10b2a4be4590c35e0f8027f3773fbcc61e05fd08 /src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java
parent1fc2254217371e1bae3c9373d2474b1053c869f9 (diff)
parentb613ddc1cf740750ab9dc20f1b051a2f04f5dbef (diff)
downloadmotodev-dd37e1328b736a11354a5847ad82c5f2551defa5.tar.gz
Merge "Initial contribution of Motorola MOTODEV tools code"
Diffstat (limited to 'src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java')
-rw-r--r--src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java b/src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java
new file mode 100644
index 0000000..816d90c
--- /dev/null
+++ b/src/plugins/translation/src/com/motorola/studio/android/json/JSONValueParser.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.motorola.studio.android.json;
+
+import java.util.List;
+
+public class JSONValueParser
+{
+ private JSONValueParser()
+ {
+ };
+
+ static JSONValue parse(List<Character> json)
+ {
+ JSONValue value = null;
+
+ boolean parsed = false;
+
+ while (!parsed)
+ {
+ Character next = json.get(0);
+
+ if (next == '{')
+ {
+ value = JSONObject.parse(json);
+ parsed = true;
+ }
+ else if (next == '[')
+ {
+ value = JSONArray.parse(json);
+ parsed = true;
+ }
+ else if (next == '"')
+ {
+ value = JSONString.parse(json);
+ parsed = true;
+ }
+ else if (next == 'n')
+ {
+ value = JSONNull.parse(json);
+ parsed = true;
+ }
+ else if (next == 't' || next == 'f')
+ {
+ value = JSONBoolean.parse(json);
+ parsed = true;
+ }
+ else if (next >= 48 && next <= 57)
+ {
+ value = JSONNumber.parse(json);
+ parsed = true;
+ }
+ else if (next == ' ' || next == '\r' || next == '\n')
+ {
+ json.remove(0);
+ }
+
+ }
+ return value;
+ }
+}