
com.myjeeva.digitalocean.serializer.LoadBalancerSerializer Maven / Gradle / Ivy
/**
* Copyright (c) Jeevanandam M. (https://github.com/jeevatkm)
*
* digitalocean-api-client source code and usage is governed by a MIT style license that can be
* found in the LICENSE file
*/
package com.myjeeva.digitalocean.serializer;
import java.lang.reflect.Type;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.myjeeva.digitalocean.pojo.ForwardingRules;
import com.myjeeva.digitalocean.pojo.LoadBalancer;
/**
* Serialize the load balancer info for POST request.
*
* @author Thomas Lehoux (https://github.com/tlehoux)
*
* @since v2.11
*/
public class LoadBalancerSerializer implements JsonSerializer {
@Override
public JsonElement serialize(LoadBalancer loadBalancer, Type paramType,
JsonSerializationContext context) {
final JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", loadBalancer.getName());
jsonObject.addProperty("region", loadBalancer.getRegion().getSlug());
if (null != loadBalancer.getAlgorithm()) {
jsonObject.addProperty("algorithm", loadBalancer.getAlgorithm().toString());
}
if (null != loadBalancer.getForwardingRules() && !loadBalancer.getForwardingRules().isEmpty()) {
JsonArray rules = new JsonArray();
for (ForwardingRules rule : loadBalancer.getForwardingRules()) {
rules.add(context.serialize(rule));
}
jsonObject.add("forwarding_rules", rules);
}
if (null != loadBalancer.getHealthCheck()) {
jsonObject.add("health_check", context.serialize(loadBalancer.getHealthCheck()));
}
if (null != loadBalancer.getStickySessions()) {
jsonObject.add("sticky_sessions", context.serialize(loadBalancer.getStickySessions()));
}
if (null != loadBalancer.getDropletIds() && !loadBalancer.getDropletIds().isEmpty()) {
JsonArray dropletIds = new JsonArray();
for (String dropletId : loadBalancer.getDropletIds()) {
dropletIds.add(context.serialize(dropletId));
}
jsonObject.add("droplet_ids", dropletIds);
}
return jsonObject;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy