blob: 747834a746821b6ade9d45405fb259277e0df866 [file] [log] [blame]
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
package com.google.protobuf;
import java.util.Map;
@CheckReturnValue
interface MapFieldSchema {
/** Returns the map data for mutation. */
Map<?, ?> forMutableMapData(Object mapField);
/** Returns the map data for read. */
Map<?, ?> forMapData(Object mapField);
/** Whether toImmutable() has been called on this map field. */
boolean isImmutable(Object mapField);
/**
* Returns an immutable instance of the map field. It may make the parameter immutable and return
* the parameter, or create an immutable copy. The status of the parameter after the call is
* undefined.
*/
Object toImmutable(Object mapField);
/** Returns a new instance of the map field given a map default entry. */
Object newMapField(Object mapDefaultEntry);
/** Returns the metadata from a default entry. */
MapEntryLite.Metadata<?, ?> forMapMetadata(Object mapDefaultEntry);
/** Merges {@code srcMapField} into {@code destMapField}, and returns the merged instance. */
@CanIgnoreReturnValue
Object mergeFrom(Object destMapField, Object srcMapField);
/** Compute the serialized size for the map with a given field number. */
int getSerializedSize(int fieldNumber, Object mapField, Object mapDefaultEntry);
}