@Override
 public void writeTo(StreamOutput out) throws IOException {
   if (docs == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     docs.writeTo(out);
   }
   if (store == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     store.writeTo(out);
   }
   if (indexing == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     indexing.writeTo(out);
   }
   if (get == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     get.writeTo(out);
   }
   if (search == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     search.writeTo(out);
   }
   if (merge == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     merge.writeTo(out);
   }
   if (refresh == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     refresh.writeTo(out);
   }
   if (flush == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     flush.writeTo(out);
   }
   if (warmer == null) {
     out.writeBoolean(false);
   } else {
     out.writeBoolean(true);
     warmer.writeTo(out);
   }
 }