Example #1
0
        private static void ProcessMembers( ExtClass ce2 )
        {
            Console.WriteLine( ce2.name );
            var ce = GetClass( ce2.name );
            CurrHtDoc.LoadHtml( ce2.html );
            ce2.AllMembers.ForEach( ProcessMemberDocs );

            if ( IncludeConfigsInMainClass && !ce.IsInterface )
                ce.Members.AddRange( ce2.members.cfg.Where( t => IsDeclared( ce2, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) && !ce2.members.property.Any( t2 => t2.name.Equals( t.name, StringComparison.Ordinal ) ) && !ce2.members.method.Any( t2 => t2.name.Equals( t.name, StringComparison.Ordinal ) ) ).Select( ProcessCfg ) );
            ce.Members.AddRange( ce2.members.property.Where( t => IsDeclared( ce2, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) ).Select( ProcessProperty ) );
            ce.Members.AddRange( ce2.members.method.Where( t => IsDeclared( ce2, t ) ).Select( ProcessMethod ) );

            if ( !ce.IsInterface )
            {
                ce.Members.AddRange( ce2.statics.property.Where( t => IsDeclared( ce2, t ) && !IsDeclared( ce, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) ).Select( ProcessProperty ) );
                ce.Members.AddRange( ce2.statics.method.Where( t => IsDeclared( ce2, t ) && !IsDeclared( ce, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) ).Select( ProcessMethod ) );
            }

            var ceCfg = GetClass( ce.FullName + "Config", false );
            if ( ceCfg != null )
            {
                ceCfg.Members.AddRange( ce2.members.cfg.Where( t => IsDeclared( ce2, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) ).Select( ProcessCfg ) );
                if ( !ceCfg.IsInterface )
                    ceCfg.Members.AddRange( ce2.statics.cfg.Where( t => IsDeclared( ce2, t ) && !IsDeclared( ceCfg, t ) && ( t.defined_in.IsNullOrEmpty() || t.defined_in == t.owner || ce2.singleton ) ).Select( ProcessCfg ) );
            }

            var ceEvents = GetClass( ce.FullName + "Events", false );
            if ( ceEvents != null )
                ceEvents.Members.AddRange( [email protected]( t => IsDeclared( ce2, t ) ).Select( ProcessEvent ) );
            if ( ce2.singleton )
            {
                ce.Members.ForEach( t => t.IsStatic = true );
            }
            ce.Summary = FixDoc();
        }
Example #2
0
        private static List<Class> Process( ExtClass ce2 )
        {
            Console.WriteLine( ce2.name );
            var ce = GetClass( ce2.name, true );
            ce.Attributes.Add( CreateJsAttribute( "Prototype" ) );
            ce.IsInterface = ce2.mixedInto != null && ce2.mixedInto.Count > 0;

            var ceCfg = GetClass( ce.FullName + "Config", true );
            ceCfg.Attributes.Add( CreateJsAttribute( "Json" ) );

            var ceEvents = GetClass( ce.FullName + "Events", true );
            ceEvents.Attributes.Add( CreateJsAttribute( "Json" ) );
            var list = new List<Class> { ce, ceCfg, ceEvents };

            return list;
        }
Example #3
0
        static void ProcessBaseClassAndInterfaces( ExtClass ce2 )
        {
            var ce = GetClass( ce2.name, false );
            if ( ce2.superclasses != null && ce2.superclasses.Count > 0 )
                ce.BaseClass = GetClass( ce2.superclasses.Last() );

            if ( ce2.mixins != null )
                ce.Interfaces.AddRange( ce2.mixins.Select( t => GetClass( t ) ) );

            if ( ce.BaseClass != null )
            {
                var ceCfg = GetClass( ce.FullName + "Config", false );
                if ( ceCfg != null )
                    ceCfg.BaseClass = GetClass( ce.BaseClass.FullName + "Config", false );
                var ceEvents = GetClass( ce.FullName + "Events", true );
                if ( ceEvents != null )
                    ceEvents.BaseClass = GetClass( ce.BaseClass.FullName + "Events", false );
            }

        }
Example #4
0
        static bool IsDeclared( ExtClass ce2, ExtMember me2 )
        {
            if ( me2.owner == ce2.name && me2.defined_in == ce2.name )
                return true;

            //if ( me2.defined_in.IsNullOrEmpty() || me2.defined_in == ce2.name || ( ce2.singleton && !me2.meta.@static ) )
            //    return true;

            var ce = GetClass( ce2.name, false );
            var ceOwner = GetClass( me2.owner );
            if ( ce.IsInterface && ceOwner.IsInterface )
                return false;
            if ( ceOwner.IsInterface )
            {
                if ( ( ce.BaseClass == null || ce.BaseClass.IsInterface || !ce.BaseClass.Interfaces.Contains( ceOwner ) ) && ce.BaseClass.BaseClass != ceOwner )
                    return true;
            }
            if ( me2.defined_in.IsNotNullOrEmpty() )
            {
                var ceDefiner = GetClass( me2.defined_in );
                if ( ceDefiner.IsInterface && !ce.IsInterface )
                    return true;
            }
            return me2.defined_in.IsNullOrEmpty() || ce2.singleton && ( ce2.singleton && !me2.meta.@static );
        }