Search in sources :

Example 1 with EnumConstantElement

use of com.squareup.protoparser.EnumConstantElement in project teiid by teiid.

the class ProtobufMetadataProcessor method getEnumOrdinal.

private String getEnumOrdinal(List<MessageElement> messageTypes, List<EnumElement> enumTypes, String name, String value) {
    for (EnumElement element : enumTypes) {
        if (element.name().equals(name)) {
            for (EnumConstantElement constant : element.constants()) {
                if (constant.name().equals(value)) {
                    return String.valueOf(constant.tag());
                }
            }
        }
    }
    // enum does not nest, messages nest
    for (MessageElement element : messageTypes) {
        List<MessageElement> childMessageTypes = filter(element.nestedElements(), MessageElement.class);
        List<EnumElement> childEnumTypes = filter(element.nestedElements(), EnumElement.class);
        String child = getEnumOrdinal(childMessageTypes, childEnumTypes, name, value);
        if (child != null) {
            return child;
        }
    }
    return null;
}
Also used : MessageElement(com.squareup.protoparser.MessageElement) EnumConstantElement(com.squareup.protoparser.EnumConstantElement) EnumElement(com.squareup.protoparser.EnumElement)

Aggregations

EnumConstantElement (com.squareup.protoparser.EnumConstantElement)1 EnumElement (com.squareup.protoparser.EnumElement)1 MessageElement (com.squareup.protoparser.MessageElement)1