Skip to content

Commit 1489150

Browse files
committed
0.3.0 Canary 3
Release Notes: 1. Supports reducing ParseTree 2. Supports cloning ParseTree 3. New methods added to JSONUtils 4. Code optimized and refactored
1 parent faebd37 commit 1489150

File tree

2 files changed

+43
-21
lines changed

2 files changed

+43
-21
lines changed

api/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ dependencies {
6060
// yiad.am jfrog repo
6161
def libraryGroupId = 'messageontap'
6262
def libraryArtifactId = 'api'
63-
def libraryVersion = '0.3.0-canary2'
63+
def libraryVersion = '0.3.0-canary3'
6464

6565
publishing.publications {
6666
aar(MavenPublication) {

api/src/main/java/edu/cmu/chimps/messageontap_api/JSONUtils.java

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public static Gson gson() {
5252
@Override
5353
/**
5454
* Deserialize a parse tree JSON to ParseTree class object.
55-
* @author: Adam Yi <xuan@yiad.am>
55+
* @author: Adam Yi &lt;xuan@yiad.am&gt;
5656
*/
5757
public ParseTree deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
5858
JsonObject treeObj = json.getAsJsonObject();
@@ -187,7 +187,7 @@ public static String simpleObjectToJson(Object object, String typeKey) {
187187
break;
188188

189189
case Globals.TYPE_CARD_LIST:
190-
type = new TypeToken<ArrayList<HashMap<String,Object>>>(){
190+
type = new TypeToken<ArrayList<HashMap<String, Object>>>() {
191191
}.getType();
192192
break;
193193
default:
@@ -224,7 +224,7 @@ public static Object jsonToSimpleObject(String json, String typeKey) {
224224
}.getType();
225225
break;
226226
case Globals.TYPE_CARD_LIST:
227-
type = new TypeToken<ArrayList<HashMap<String,Object>>>(){
227+
type = new TypeToken<ArrayList<HashMap<String, Object>>>() {
228228
}.getType();
229229
break;
230230
default:
@@ -237,15 +237,21 @@ public static HashMap<String, Object> refactorHashMap(HashMap<String, Object> mM
237237
return refactorHashMap(mMap, 0);
238238
}
239239

240-
//-1: integer only mode
241-
//0: smart mode
242-
//1: long only mode
243-
public static HashMap<String,Object> refactorHashMap(HashMap<String,Object> mMap, int mode){
244-
for(String key:mMap.keySet()){
245-
if(mMap.get(key)!=null && (mMap.get(key) instanceof Double||mMap.get(key) instanceof Float)){
240+
/**
241+
* Check all double and float values in a hash map. If they are integers, cast them to
242+
* the data type that they should be.
243+
*
244+
* @param mMap the hash map to be refactored
245+
* @param mode -1: Integer only Mode; 0: Smart Mode; 1: Long only Mode
246+
* @return the hash map after refactoring
247+
* @author Adam Yi &lt;xuan@yiad.am&gt;
248+
*/
249+
public static HashMap<String, Object> refactorHashMap(HashMap<String, Object> mMap, int mode) {
250+
for (String key : mMap.keySet()) {
251+
if (mMap.get(key) != null && (mMap.get(key) instanceof Double || mMap.get(key) instanceof Float)) {
246252
Double mDouble = (Double) mMap.get(key);
247253
long mLong = mDouble.longValue();
248-
if(mDouble == mLong){
254+
if (mDouble == mLong) {
249255
if (mode == 1) {
250256
mMap.put(key, mLong);
251257
continue;
@@ -256,7 +262,7 @@ public static HashMap<String,Object> refactorHashMap(HashMap<String,Object> mMap
256262
continue;
257263
}
258264
if (mInt == mLong)
259-
mMap.put(key,mInt);
265+
mMap.put(key, mInt);
260266
else
261267
mMap.put(key, mLong);
262268
}
@@ -265,27 +271,43 @@ public static HashMap<String,Object> refactorHashMap(HashMap<String,Object> mMap
265271
return mMap;
266272
}
267273

268-
public static Long longValue(Object num) throws UnsupportedOperationException{
274+
/**
275+
* Cast a number Object to Long
276+
*
277+
* @param num the object to be casted
278+
* @return the casted Long
279+
* @throws UnsupportedOperationException
280+
* @author Adam Yi &lt;xuan@yiad.am&gt;
281+
*/
282+
public static Long longValue(Object num) throws UnsupportedOperationException {
269283
if (num instanceof Long)
270-
return (Long)num;
284+
return (Long) num;
271285
if (num instanceof Integer)
272-
return Long.valueOf((int)num);
286+
return Long.valueOf((int) num);
273287
if (num instanceof Double)
274-
return Long.valueOf((long)(double)num);
288+
return Long.valueOf((long) (double) num);
275289
if (num instanceof Float)
276-
return Long.valueOf((long)(float)num);
290+
return Long.valueOf((long) (float) num);
277291
throw new UnsupportedOperationException();
278292
}
279293

280-
public static Integer intValue(Object num) throws UnsupportedOperationException{
294+
/**
295+
* Cast a number Object to Integer
296+
*
297+
* @param num the object to be casted
298+
* @return the casted Integer
299+
* @throws UnsupportedOperationException
300+
* @author Adam Yi &lt;xuan@yiad.am&gt;
301+
*/
302+
public static Integer intValue(Object num) throws UnsupportedOperationException {
281303
if (num instanceof Integer)
282304
return (Integer) num;
283305
if (num instanceof Long)
284-
return Integer.valueOf((int)(long)num);
306+
return Integer.valueOf((int) (long) num);
285307
if (num instanceof Double)
286-
return Integer.valueOf((int)(double)num);
308+
return Integer.valueOf((int) (double) num);
287309
if (num instanceof Float)
288-
return Integer.valueOf((int)(float)num);
310+
return Integer.valueOf((int) (float) num);
289311
throw new UnsupportedOperationException();
290312
}
291313
}

0 commit comments

Comments
 (0)