static MethodMapEntry FromElement(XElement element, string parameterName) { var entry = new MethodMapEntry { JavaPackage = element.Parent.Parent.XGetAttribute("name")?.Replace('.', '/'), JavaType = element.Parent.XGetAttribute("name")?.Replace('.', '$'), JavaName = element.XGetAttribute("name"), ParameterName = parameterName, ApiLevel = NamingConverter.ParseApiLevel(element), IsInterface = element.Parent.Name == "interface" }; if (element.Name == "constructor") { entry.JavaName = "ctor"; } return(entry); }
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); }
public static List <MethodMapEntry> FromMethodMapCsv(TextReader reader) { var entries = new List <MethodMapEntry> (); string s; // Read the enum csv file while ((s = reader.ReadLine()) != null) { // Skip empty lines and comments if (string.IsNullOrEmpty(s) || s.StartsWith("//", StringComparison.Ordinal)) { continue; } entries.Add(MethodMapEntry.FromString(s)); } return(entries); }
public static List <MethodMapEntry> FromApiXml(XDocument doc) { var results = new List <MethodMapEntry> (); // Methods that return int or have an int parameter results.AddRange(doc.XPathSelectElements("//method[@return='int'] | //method[parameter/@type='int']").SelectMany(x => MethodMapEntry.FromXml(x))); // Constructors with an int parameter results.AddRange(doc.XPathSelectElements("//constructor[parameter/@type='int']").SelectMany(x => MethodMapEntry.FromXml(x))); // Fields that are a non-constant int results.AddRange(doc.XPathSelectElements("//field[@type='int' and @final='false']").SelectMany(x => MethodMapEntry.FromXml(x))); return(results); }