// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. /** * */ package com.yahoo.document.serialization; import com.yahoo.document.Document; import com.yahoo.document.annotation.AnnotationReference; import com.yahoo.document.datatypes.Array; import com.yahoo.document.datatypes.BoolFieldValue; import com.yahoo.document.datatypes.ByteFieldValue; import com.yahoo.document.datatypes.CollectionFieldValue; import com.yahoo.document.datatypes.DoubleFieldValue; import com.yahoo.document.datatypes.FieldValue; import com.yahoo.document.datatypes.FloatFieldValue; import com.yahoo.document.datatypes.IntegerFieldValue; import com.yahoo.document.datatypes.LongFieldValue; import com.yahoo.document.datatypes.MapFieldValue; import com.yahoo.document.datatypes.PredicateFieldValue; import com.yahoo.document.datatypes.Raw; import com.yahoo.document.datatypes.ReferenceFieldValue; import com.yahoo.document.datatypes.StringFieldValue; import com.yahoo.document.datatypes.Struct; import com.yahoo.document.datatypes.StructuredFieldValue; import com.yahoo.document.datatypes.TensorFieldValue; import com.yahoo.document.datatypes.WeightedSet; import com.yahoo.vespa.objects.Deserializer; import com.yahoo.vespa.objects.FieldBase; /** * @author ravishar * */ public interface FieldReader extends Deserializer { /** * Read in the value of field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, Document value); /** * Read in the value of field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, FieldValue value); /** * Read in the value of array field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, Array value); /** * Read the value of a map field */ void read(FieldBase field, MapFieldValue map); /** * Read in the value of byte field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, ByteFieldValue value); /** * Read in the value of byte field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, BoolFieldValue value); /** * Read in the value of collection field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, CollectionFieldValue value); /** * Read in the value of double field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, DoubleFieldValue value); /** * Read in the value of float field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, FloatFieldValue value); /** * Read in the value of integer field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, IntegerFieldValue value); /** * Read in the value of long field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, LongFieldValue value); /** * Read in the value of raw field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, Raw value); /** * Read in the value of predicate field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, PredicateFieldValue value); /** * Read in the value of string field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, StringFieldValue value); /** * Read in the value of the given tensor field. * * @param field field description (name and data type) * @param value tensor field value */ void read(FieldBase field, TensorFieldValue value); /** * Read in the value of the given reference field. * * @param field field description (name and data type) * @param value reference field value */ void read(FieldBase field, ReferenceFieldValue value); /** * Read in the value of struct field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, Struct value); /** * Read in the value of structured field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, StructuredFieldValue value); /** * Read in the value of weighted set field * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, WeightedSet value); /** * Read in the value of annotation reference. * * @param field - field description (name and data type) * @param value - field value */ void read(FieldBase field, AnnotationReference value); }