All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.envoyproxy.controlplane.server.serializer.ProtoResourcesSerializer Maven / Gradle / Ivy

There is a newer version: 1.0.48
Show newest version
package io.envoyproxy.controlplane.server.serializer;

import com.google.protobuf.Any;
import com.google.protobuf.Message;
import io.envoyproxy.controlplane.cache.Resources.ApiVersion;
import java.util.Collection;
import java.util.stream.Collectors;

/**
 * Serializer of the proto buffers resource messages.
 */
public interface ProtoResourcesSerializer {

  /**
   * Serialize messages to proto buffers.
   * @param resources list of resources to serialize
   * @param apiVersion the API version
   * @return serialized resources
   */
  default Collection serialize(Collection resources, ApiVersion apiVersion) {
    return resources.stream()
        .map(resource -> serialize(resource, apiVersion))
        .collect(Collectors.toList());
  }

  /**
   * Serialize message to proto buffers.
   * @param resource the resource to serialize
   * @return serialized resource
   */
  Any serialize(Message resource, ApiVersion apiVersion);

  class ProtoSerializerException extends RuntimeException {
    ProtoSerializerException(String message, Throwable cause) {
      super(message, cause);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy