Class Protobuf

java.lang.Object
com.google.protobuf.Protobuf

@ExperimentalApi @CheckReturnValue final class Protobuf extends Object
Main runtime interface for protobuf. Applications should interact with this interface (rather than directly accessing internal APIs) in order to perform operations on protobuf messages.
  • Field Details

    • INSTANCE

      private static final Protobuf INSTANCE
    • assumeLiteRuntime

      static boolean assumeLiteRuntime
    • schemaFactory

      private final SchemaFactory schemaFactory
    • schemaCache

      private final ConcurrentMap<Class<?>,Schema<?>> schemaCache
  • Constructor Details

    • Protobuf

      private Protobuf()
  • Method Details

    • getInstance

      public static Protobuf getInstance()
      Gets the singleton instance of the Protobuf runtime.
    • writeTo

      public <T> void writeTo(T message, Writer writer) throws IOException
      Writes the given message to the target Writer.
      Throws:
      IOException
    • mergeFrom

      public <T> void mergeFrom(T message, Reader reader) throws IOException
      Reads fields from the given Reader and merges them into the message.
      Throws:
      IOException
    • mergeFrom

      public <T> void mergeFrom(T message, Reader reader, ExtensionRegistryLite extensionRegistry) throws IOException
      Reads fields from the given Reader and merges them into the message.
      Throws:
      IOException
    • makeImmutable

      public <T> void makeImmutable(T message)
      Marks repeated/map/extension/unknown fields as immutable.
    • isInitialized

      <T> boolean isInitialized(T message)
      Checks if all required fields are set.
    • schemaFor

      public <T> Schema<T> schemaFor(Class<T> messageType)
      Gets the schema for the given message type.
    • schemaFor

      public <T> Schema<T> schemaFor(T message)
      Gets the schema for the given message.
    • registerSchema

      public Schema<?> registerSchema(Class<?> messageType, Schema<?> schema)
      Registers the given schema for the message type only if a schema was not already registered.
      Parameters:
      messageType - the type of message on which the schema operates.
      schema - the schema for the message type.
      Returns:
      the previously registered schema, or null if the given schema was successfully registered.
    • registerSchemaOverride

      public Schema<?> registerSchemaOverride(Class<?> messageType, Schema<?> schema)
      Visible for testing only. Registers the given schema for the message type. If a schema was previously registered, it will be replaced by the provided schema.
      Parameters:
      messageType - the type of message on which the schema operates.
      schema - the schema for the message type.
      Returns:
      the previously registered schema, or null if no schema was registered previously.
    • getTotalSchemaSize

      int getTotalSchemaSize()