Skip to content

Commit

Permalink
Pushed for loop to be outside of the try catches to remove unnecessar…
Browse files Browse the repository at this point in the history
…y for loops.
  • Loading branch information
allenc3 committed Jul 16, 2020
1 parent 4e34f29 commit 2650519
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ private static DynamicMessage convertJsonToProtoMessageImpl(
* @param protoMsg The protocol buffer message being constructed
* @param fieldDescriptor
* @param json
* @param exactJsonKeyName Actual key name in JSONObject instead of lowercased version
* @param exactJsonKeyName Exact key name in JSONObject instead of lowercased version
* @param currentScope Debugging purposes
* @param allowUnknownFields Ignores unknown JSON fields.
* @throws IllegalArgumentException when JSON data is not compatible with proto descriptor.
Expand All @@ -165,15 +165,15 @@ private static void fillField(
if (val instanceof Integer) {
protoMsg.setField(fieldDescriptor, new Long((Integer) val));
} else if (val instanceof Long) {
protoMsg.setField(fieldDescriptor, new Long((Long) val));
protoMsg.setField(fieldDescriptor, (Long) val);
} else {
throw new JSONException("");
}
break;
case INT32:
val = json.get(exactJsonKeyName);
if (val instanceof Integer) {
protoMsg.setField(fieldDescriptor, new Integer((Integer) val));
protoMsg.setField(fieldDescriptor, (Integer) val);
} else {
throw new JSONException("");
}
Expand All @@ -184,9 +184,9 @@ private static void fillField(
case DOUBLE:
val = json.get(exactJsonKeyName);
if (val instanceof Double) {
protoMsg.setField(fieldDescriptor, new Double((double) val));
protoMsg.setField(fieldDescriptor, (Double) val);
} else if (val instanceof Float) {
protoMsg.setField(fieldDescriptor, new Double((float) val));
protoMsg.setField(fieldDescriptor, new Double((Float) val));
} else {
throw new JSONException("");
}
Expand Down Expand Up @@ -217,7 +217,7 @@ private static void fillField(
* @param protoMsg The protocol buffer message being constructed
* @param fieldDescriptor
* @param json If root level has no matching fields, throws exception.
* @param exactJsonKeyName Actual key name in JSONObject instead of lowercased version
* @param exactJsonKeyName Exact key name in JSONObject instead of lowercased version
* @param currentScope Debugging purposes
* @param allowUnknownFields Ignores unknown JSON fields.
* @throws IllegalArgumentException when JSON data is not compatible with proto descriptor.
Expand All @@ -241,65 +241,47 @@ private static void fillRepeatedField(
java.lang.Object val;
int index = -1;
try {
switch (fieldDescriptor.getType()) {
case BOOL:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
switch (fieldDescriptor.getType()) {
case BOOL:
protoMsg.addRepeatedField(fieldDescriptor, new Boolean(jsonArray.getBoolean(i)));
}
break;
case BYTES:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case BYTES:
protoMsg.addRepeatedField(fieldDescriptor, jsonArray.getString(i).getBytes());
}
break;
case INT64:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case INT64:
val = jsonArray.get(i);
if (val instanceof Integer) {
protoMsg.addRepeatedField(fieldDescriptor, new Long((Integer) val));
} else if (val instanceof Long) {
protoMsg.addRepeatedField(fieldDescriptor, new Long((Long) val));
protoMsg.addRepeatedField(fieldDescriptor, (Long) val);
} else {
throw new JSONException("");
}
}
break;
case INT32:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case INT32:
val = jsonArray.get(i);
if (val instanceof Integer) {
protoMsg.addRepeatedField(fieldDescriptor, new Integer((Integer) val));
protoMsg.addRepeatedField(fieldDescriptor, (Integer) val);
} else {
throw new JSONException("");
}
}
break;
case STRING:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case STRING:
protoMsg.addRepeatedField(fieldDescriptor, jsonArray.getString(i));
}
break;
case DOUBLE:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case DOUBLE:
val = jsonArray.get(i);
if (val instanceof Double) {
protoMsg.addRepeatedField(fieldDescriptor, new Double((double) val));
protoMsg.addRepeatedField(fieldDescriptor, (Double) val);
} else if (val instanceof Float) {
protoMsg.addRepeatedField(fieldDescriptor, new Double((float) val));
} else {
throw new JSONException("");
}
}
break;
case MESSAGE:
for (int i = 0; i < jsonArray.length(); i++) {
index = i;
break;
case MESSAGE:
Message.Builder message = protoMsg.newBuilderForField(fieldDescriptor);
protoMsg.addRepeatedField(
fieldDescriptor,
Expand All @@ -309,8 +291,8 @@ private static void fillRepeatedField(
currentScope,
/*topLevel =*/ false,
allowUnknownFields));
}
break;
break;
}
}
} catch (JSONException e) {
throw new IllegalArgumentException(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,49 +179,32 @@ private void isProtoArrayJsonArrayEqual(
HashMap<String, String> jsonLowercaseNameToActualName) {
String fieldName = jsonLowercaseNameToActualName.get(key.getName().toLowerCase());
JSONArray jsonArray = json.getJSONArray(fieldName);
switch (key.getType()) {
case BOOL:
List<Boolean> boolArr = (List<Boolean>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue((boolArr.get(i) == jsonArray.getBoolean(i)));
}
break;
case BYTES:
List<byte[]> byteArr = (List<byte[]>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue(Arrays.equals(byteArr.get(i), jsonArray.getString(i).getBytes()));
}
break;
case INT64:
List<Long> longArr = (List<Long>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue((longArr.get(i) == jsonArray.getLong(i)));
}
break;
case INT32:
List<Integer> intArr = (List<Integer>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue((intArr.get(i) == jsonArray.getInt(i)));
}
break;
case STRING:
List<String> stringArr = (List<String>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue(stringArr.get(i).equals(jsonArray.getString(i)));
}
break;
case DOUBLE:
List<Double> doubleArr = (List<Double>) value;
for (int i = 0; i < jsonArray.length(); i++) {
assertTrue((doubleArr.get(i) == jsonArray.getDouble(i)));
}
break;
case MESSAGE:
List<DynamicMessage> messageArr = (List<DynamicMessage>) value;
for (int i = 0; i < jsonArray.length(); i++) {
AreMatchingFieldsFilledIn(messageArr.get(i), jsonArray.getJSONObject(i));
}
break;
for (int i = 0; i < jsonArray.length(); i++) {
switch (key.getType()) {
case BOOL:
assertTrue((((List<Boolean>) value).get(i) == jsonArray.getBoolean(i)));
break;
case BYTES:
assertTrue(
Arrays.equals(((List<byte[]>) value).get(i), jsonArray.getString(i).getBytes()));
break;
case INT64:
assertTrue((((List<Long>) value).get(i) == jsonArray.getLong(i)));
break;
case INT32:
assertTrue((((List<Integer>) value).get(i) == jsonArray.getInt(i)));
break;
case STRING:
assertTrue(((List<String>) value).get(i).equals(jsonArray.getString(i)));
break;
case DOUBLE:
assertTrue((((List<Double>) value).get(i) == jsonArray.getDouble(i)));
break;
case MESSAGE:
AreMatchingFieldsFilledIn(
((List<DynamicMessage>) value).get(i), jsonArray.getJSONObject(i));
break;
}
}
}

Expand Down

0 comments on commit 2650519

Please sign in to comment.