コード例 #1
0
        static ConstantEntry FromVersion1String(CsvParser parser, bool transientMode)
        {
            var entry = new ConstantEntry {
                Action        = ConstantAction.Enumify,
                ApiLevel      = parser.GetFieldAsInt(0),
                EnumFullType  = parser.GetField(1),
                EnumMember    = parser.GetField(2),
                JavaSignature = parser.GetField(3),
                Value         = parser.GetField(4),
                IsFlags       = parser.GetField(5).ToLowerInvariant() == "flags",
                FieldAction   = transientMode ? FieldAction.Remove : FieldAction.Keep
            };

            if (!entry.EnumNamespace.HasValue())
            {
                // This is a line that only deletes a const, not maps it to an enum
                entry.Action      = ConstantAction.Remove;
                entry.FieldAction = FieldAction.Remove;
            }
            else if (!entry.JavaSignature.HasValue())
            {
                // This is a line that adds an unmapped enum member
                entry.Action      = ConstantAction.Add;
                entry.FieldAction = transientMode ? FieldAction.Remove : FieldAction.None;
            }

            entry.NormalizeJavaSignature();

            return(entry);
        }
コード例 #2
0
        static MethodMapEntry FromVersion1String(CsvParser parser)
        {
            var entry = new MethodMapEntry {
                Action        = MethodAction.Enumify,
                ApiLevel      = parser.GetFieldAsInt(0),
                JavaPackage   = parser.GetField(1),
                JavaType      = parser.GetField(2),
                JavaName      = parser.GetField(3),
                ParameterName = parser.GetField(4),
                EnumFullType  = parser.GetField(5)
            };

            if (entry.JavaType.StartsWith("[Interface]", StringComparison.Ordinal))
            {
                entry.IsInterface = true;
                entry.JavaType    = entry.JavaType.Substring("[Interface]".Length);
            }

            return(entry);
        }
コード例 #3
0
        public static ConstantEntry FromString(string line, bool transientMode = false)
        {
            var parser = new CsvParser(line);

            if (parser.GetField(0).In("?", "I", "E", "A", "R"))
            {
                return(FromVersion2String(parser));
            }

            return(FromVersion1String(parser, transientMode));
        }
コード例 #4
0
        public static MethodMapEntry FromString(string line)
        {
            var parser = new CsvParser(line);

            if (parser.GetField(0).In("?", "I", "E"))
            {
                return(FromVersion2String(parser));
            }

            return(FromVersion1String(parser));
        }
コード例 #5
0
        static ConstantEntry FromVersion2String(CsvParser parser)
        {
            var entry = new ConstantEntry {
                Action        = FromConstantActionString(parser.GetField(0)),
                ApiLevel      = parser.GetFieldAsInt(1),
                JavaSignature = parser.GetField(2),
                Value         = parser.GetField(3),
                EnumFullType  = parser.GetField(4),
                EnumMember    = parser.GetField(5),
                FieldAction   = FromFieldActionString(parser.GetField(6)),
                IsFlags       = parser.GetField(7).ToLowerInvariant() == "flags"
            };

            entry.NormalizeJavaSignature();

            return(entry);
        }