55 lines
1.5 KiB
Java
55 lines
1.5 KiB
Java
|
package mineplex.serverdata;
|
||
|
|
||
|
import com.google.gson.Gson;
|
||
|
import com.google.gson.GsonBuilder;
|
||
|
|
||
|
/**
|
||
|
* Utility offers various necessary utility-based methods for use in Mineplex.ServerData.
|
||
|
* @author Ty
|
||
|
*
|
||
|
*/
|
||
|
public class Utility
|
||
|
{
|
||
|
|
||
|
// The Gson instance used to serialize/deserialize objects in JSON form.
|
||
|
private static Gson _gson = new GsonBuilder().create();
|
||
|
public static Gson getGson() { return _gson; }
|
||
|
|
||
|
/**
|
||
|
* @param object - the (non-null) object to serialize
|
||
|
* @return the serialized form of {@code object}.
|
||
|
*/
|
||
|
public static String serialize(Object object)
|
||
|
{
|
||
|
return _gson.toJson(object);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param serializedData - the serialized data to be deserialized
|
||
|
* @param type - the resulting class type of the object to be deserialized
|
||
|
* @return the deserialized form of {@code serializedData} for class {@code type}.
|
||
|
*/
|
||
|
public static <T> T deserialize(String serializedData, Class<T> type)
|
||
|
{
|
||
|
return _gson.fromJson(serializedData, type);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param delimiter - the delimiter character used to separate the concatenated elements
|
||
|
* @param elements - the set of string elements to be concatenated and returned.
|
||
|
* @return the concatenated string of all {@code elements} separated by the {@code delimiter}.
|
||
|
*/
|
||
|
public static String concatenate(char delimiter, String... elements)
|
||
|
{
|
||
|
int length = elements.length;
|
||
|
String result = length > 0 ? elements[0] : new String();
|
||
|
|
||
|
for (int i = 1; i < length; i++)
|
||
|
{
|
||
|
result += delimiter + elements[i];
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
}
|