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));
        }