private static bool NameTypeReferenceNeedsWrapper(this WindowsAccessBridgeModel model, NameTypeReference reference) { var name = reference.Name; if (name == typeof(JavaObjectHandle).Name) { return(true); } if (model.Classes.Any(c => c.Name == reference.Name && model.ClassNeedsWrapper(c))) { return(true); } if (model.Structs.Any(c => c.Name == reference.Name && model.StructNeedsWrapper(c))) { return(true); } return(false); }
/// <summary> /// Returns <code>true</code> if the <code>class</code> named <paramref /// name="name"/> requires a wrapper struct definition for P/Invoke calls, /// or <code>false</code> if it can be used directly. /// </summary> public static bool ClassNameNeedsWrapper(this WindowsAccessBridgeModel model, string name) { var definition = model.Classes.FirstOrDefault(x => x.Name == name); return(definition == null ? false : model.ClassNeedsWrapper(definition)); }