package crmdna.objectstore;
import crmdna.client.Client;
import crmdna.common.api.APIException;
import crmdna.common.api.APIResponse.Status;
public class ObjectStore {
public static long put(String client, Object object, long expiryDuration, TimeUnit unit) {
Client.ensureValid(client);
long expiryDurationMS;
if (unit == TimeUnit.MILLISECONDS)
expiryDurationMS = expiryDuration;
else if (unit == TimeUnit.SECONDS)
expiryDurationMS = expiryDuration * 1000;
else if (unit == TimeUnit.HOURS)
expiryDurationMS = expiryDuration * 3600 * 1000;
else if (unit == TimeUnit.DAYS)
expiryDurationMS = expiryDuration * 86400 * 1000;
else {
// should never come here
throw new APIException().status(Status.ERROR_RESOURCE_INCORRECT).message(
"Unsupported time unit [" + unit + "]");
}
return ObjectStoreCore.put(client, object, expiryDurationMS);
}
public static Object safeGet(String client, long objectId) {
Client.ensureValid(client);
return ObjectStoreCore.safeGet(client, objectId);
}
public static Object get(String client, long objectId) {
Client.ensureValid(client);
return ObjectStoreCore.get(client, objectId);
}
public enum TimeUnit {
MILLISECONDS, SECONDS, HOURS, DAYS
}
}