ProtocolBuffers.ProtoPrepare.SearchMessageDown C# (CSharp) Method

SearchMessageDown() static private method

Search down for matching name
static private SearchMessageDown ( Message p, string name ) : MessageEnumBase
p Message
name string /// Split .proto type name ///
return MessageEnumBase
        static MessageEnumBase SearchMessageDown(Message p, string[] name)
        {
            if (name.Length == 1) {
                foreach (MessageEnum me in p.Enums) {
                    if (me.ProtoName == name [0])
                        return me;
                }
            }

            foreach (Message sub in p.Messages) {
                if (sub.ProtoName == name [0]) {
                    if (name.Length == 1)
                        return sub;
                    string[] subName = new string[name.Length - 1];
                    Array.Copy (name, 1, subName, 0, subName.Length);

                    return SearchMessageDown (sub, subName);
                }
            }

            return null;
        }