Package com.google.protobuf.Descriptors.FieldDescriptor

Examples of com.google.protobuf.Descriptors.FieldDescriptor.Type


        final Descriptors.FieldDescriptor field,
        final JsonParser parser)
        throws ReaderException, IOException
    {
        final JsonToken token = parser.getCurrentToken();
        final Type type = field.getType();
        switch (token) {
        case START_OBJECT:
            if (!type.equals(Type.MESSAGE)) {
                throw new TypeMismatchException(field.getName(), "OBJECT", type.name());
            }
            return parseObject(builder.newBuilderForField(field), parser).build();
        case VALUE_FALSE:
            if (!type.equals(Type.BOOL)) {
                throw new TypeMismatchException(field.getName(), "BOOLEAN", type.name());
            }
            return Boolean.FALSE;
        case VALUE_TRUE:
            if (!type.equals(Type.BOOL)) {
                throw new TypeMismatchException(field.getName(), "BOOLEAN", type.name());
            }
            return Boolean.TRUE;
        case VALUE_NUMBER_FLOAT:
            switch (type) {
            case DOUBLE:
                return Double.valueOf(parser.getDoubleValue());
            case FLOAT:
                return Float.valueOf(parser.getFloatValue());
            default:
                throw new TypeMismatchException(field.getName(), "FRACTIONAL", type.name());
            }
        case VALUE_NUMBER_INT:
            switch (type) {
            case INT32:
            case SINT32:
            case UINT32:
            case FIXED32:
            case SFIXED32:
                return Integer.valueOf(parser.getIntValue());
            case INT64:
            case SINT64:
            case UINT64:
            case FIXED64:
            case SFIXED64:
                return Long.valueOf(parser.getLongValue());
            case DOUBLE:
                return Double.valueOf(parser.getLongValue());
            case FLOAT:
                return Float.valueOf(parser.getLongValue());
            case ENUM:
                Descriptors.EnumDescriptor desc = field.getEnumType();
                Descriptors.EnumValueDescriptor val
                    = desc.findValueByNumber(parser.getIntValue());
                if (val == null) {
                    throw new TypeMismatchException(
                        "Schema/input mismatch, enum " + field.getName()
                            + " has no member numbered " + parser.getIntValue());
                }
                return val;
            default:
                throw new TypeMismatchException(field.getName(), "NUMBER", type.name());
            }
        case VALUE_STRING:
            switch (type) {
            case STRING:
                return parser.getText();
            case BYTES:
                return parser.getBinaryValue();
            case ENUM:
                Descriptors.EnumDescriptor desc = field.getEnumType();
                Descriptors.EnumValueDescriptor val
                    = desc.findValueByName(parser.getText());
                if (val == null) {
                    throw new TypeMismatchException(
                        "Schema/input mismatch, enum " + field.getName()
                            + " has no member " + parser.getText());
                }
                return val;
            default:
                throw new TypeMismatchException(field.getName(), "STRING", type.name());
            }
        default:
            throw new TypeMismatchException(
                "Schema/input mismatch, don't know how to parse " + token.name());
        }
View Full Code Here

TOP

Related Classes of com.google.protobuf.Descriptors.FieldDescriptor.Type

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.