package com.fasterxml.jackson.dataformat.protobuf.schema;
import java.util.Arrays;
import com.squareup.protoparser.DataType;
import com.squareup.protoparser.DataType.ScalarType;
public enum FieldType
{
DOUBLE(WireType.FIXED_64BIT, ScalarType.DOUBLE),
FLOAT(WireType.FIXED_32BIT, ScalarType.FLOAT),
VINT32_Z(WireType.VINT, ScalarType.SINT32),
VINT64_Z(WireType.VINT, ScalarType.SINT64),
VINT32_STD(WireType.VINT, ScalarType.INT32, ScalarType.UINT32),
VINT64_STD(WireType.VINT, ScalarType.INT64, ScalarType.UINT64),
FIXINT32(WireType.FIXED_32BIT, ScalarType.FIXED32, ScalarType.SFIXED32),
FIXINT64(WireType.FIXED_64BIT, ScalarType.FIXED64, ScalarType.SFIXED64),
BOOLEAN(WireType.VINT, ScalarType.BOOL),
STRING(WireType.LENGTH_PREFIXED, ScalarType.STRING),
BYTES(WireType.LENGTH_PREFIXED, ScalarType.BYTES),
ENUM(WireType.VINT),
MESSAGE(WireType.LENGTH_PREFIXED)
;
private final int _wireType;
private final DataType.ScalarType[] _aliases;
private FieldType(int wt, DataType.ScalarType... aliases) {
_wireType = wt;
_aliases = aliases;
}
public int getWireType() { return _wireType; }
public boolean usesZigZag() {
return (this == VINT32_Z) || (this == VINT64_Z);
}
public Iterable< DataType.ScalarType> aliases() {
return Arrays.asList(_aliases);
}
}