Skip to content

Commit 61c985e

Browse files
nitzanjAmir Tocker
authored andcommitted
Add support for serialization to enable persisting request parameters.
1 parent 5fe2d92 commit 61c985e

File tree

7 files changed

+32
-15
lines changed

7 files changed

+32
-15
lines changed

cloudinary-core/src/main/java/com/cloudinary/Coordinates.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.cloudinary;
22

3+
import java.io.Serializable;
34
import java.util.ArrayList;
45
import java.util.Collection;
56

67
import com.cloudinary.utils.Rectangle;
78
import com.cloudinary.utils.StringUtils;
89

9-
public class Coordinates {
10+
public class Coordinates implements Serializable{
1011

1112
Collection<Rectangle> coordinates = new ArrayList<Rectangle>();
1213

cloudinary-core/src/main/java/com/cloudinary/Transformation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.cloudinary;
22

3+
import java.io.Serializable;
34
import java.util.*;
45
import java.util.regex.Matcher;
56
import java.util.regex.Pattern;
@@ -11,7 +12,7 @@
1112
import com.cloudinary.utils.StringUtils;
1213

1314
@SuppressWarnings({"rawtypes", "unchecked"})
14-
public class Transformation {
15+
public class Transformation implements Serializable{
1516
public static final String VAR_NAME_RE = "^\\$[a-zA-Z][a-zA-Z0-9]+$";
1617
protected Map transformation;
1718
protected List<Map> transformations;

cloudinary-core/src/main/java/com/cloudinary/transformation/AbstractLayer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.cloudinary.transformation;
22

3+
import java.io.Serializable;
34
import java.util.ArrayList;
45

56
import com.cloudinary.utils.StringUtils;
67

7-
public abstract class AbstractLayer<T extends AbstractLayer<T>> {
8+
public abstract class AbstractLayer<T extends AbstractLayer<T>> implements Serializable{
89
abstract T getThis();
910

1011
protected String resourceType = null;

cloudinary-core/src/main/java/com/cloudinary/utils/ObjectUtils.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
package com.cloudinary.utils;
22

3-
import java.util.ArrayList;
4-
import java.util.Arrays;
5-
import java.util.Collections;
6-
import java.util.HashMap;
7-
import java.util.HashSet;
8-
import java.util.Iterator;
9-
import java.util.List;
10-
import java.util.Map;
11-
123
import org.cloudinary.json.JSONArray;
134
import org.cloudinary.json.JSONException;
145
import org.cloudinary.json.JSONObject;
156

7+
import java.io.*;
8+
import java.util.*;
9+
1610

1711
public class ObjectUtils {
1812

@@ -32,6 +26,22 @@ public static String asString(Object value, String defaultValue) {
3226
}
3327
}
3428

29+
public static String serialize(Object object) throws IOException {
30+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
31+
ObjectOutputStream objectOutputStream = new ObjectOutputStream(baos);
32+
try {
33+
objectOutputStream.writeObject(object);
34+
return new String(Base64Coder.encode(baos.toByteArray()));
35+
} finally {
36+
objectOutputStream.close();
37+
}
38+
}
39+
40+
public static Object deserialize(String base64SerializedString) throws IOException, ClassNotFoundException {
41+
byte[] buf = Base64Coder.decode(base64SerializedString);
42+
return new ObjectInputStream(new ByteArrayInputStream(buf)).readObject();
43+
}
44+
3545
@SuppressWarnings({"rawtypes", "unchecked"})
3646
public static List asArray(Object value) {
3747
if (value == null) {

cloudinary-core/src/main/java/com/cloudinary/utils/Rectangle.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.cloudinary.utils;
22

3-
public class Rectangle {
3+
import java.io.Serializable;
4+
5+
public class Rectangle implements Serializable{
46

57
public int height;
68
public int width;

cloudinary-core/src/main/java/org/cloudinary/json/JSONArray.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ of this software and associated documentation files (the "Software"), to deal
2525
*/
2626

2727
import java.io.IOException;
28+
import java.io.Serializable;
2829
import java.io.StringWriter;
2930
import java.io.Writer;
3031
import java.lang.reflect.Array;
@@ -77,7 +78,7 @@ of this software and associated documentation files (the "Software"), to deal
7778
* @author JSON.org
7879
* @version 2014-05-03
7980
*/
80-
public class JSONArray {
81+
public class JSONArray implements Serializable {
8182

8283
/**
8384
* The arrayList where the JSONArray's properties are kept.

cloudinary-core/src/main/java/org/cloudinary/json/JSONObject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ of this software and associated documentation files (the "Software"), to deal
2525
*/
2626

2727
import java.io.IOException;
28+
import java.io.Serializable;
2829
import java.io.StringWriter;
2930
import java.io.Writer;
3031
import java.lang.reflect.Field;
@@ -93,7 +94,7 @@ of this software and associated documentation files (the "Software"), to deal
9394
* @author JSON.org
9495
* @version 2014-05-03
9596
*/
96-
public class JSONObject {
97+
public class JSONObject implements Serializable{
9798
/**
9899
* JSONObject.NULL is equivalent to the value that JavaScript calls null,
99100
* whilst Java's null is equivalent to the value that JavaScript calls

0 commit comments

Comments
 (0)