@Override
public ObjectNode encode(GroupBucket bucket, CodecContext context) {
checkNotNull(bucket, "Driver cannot be null");
ObjectNode result = context.mapper().createObjectNode()
.put(TYPE, bucket.type().toString())
.put(WEIGHT, bucket.weight())
.put(PACKETS, bucket.packets())
.put(BYTES, bucket.bytes())
.put(BUCKET_ID, bucket.hashCode());
if (bucket.watchPort() != null) {
result.put(WATCH_PORT, bucket.watchPort().toString());
}
if (bucket.watchGroup() != null) {
result.put(WATCH_GROUP, bucket.watchGroup().toString());
}
if (bucket.treatment() != null) {
result.set(TREATMENT, context.codec(TrafficTreatment.class).encode(bucket.treatment(), context));
}
return result;
}