ValidateForSubclass() публичный Метод

public ValidateForSubclass ( ) : bool
Результат bool
Пример #1
0
        public override bool Validate()
        {
            LogWriter log = new LogWriter(QualifiedName);

            foreach (string iface in interfaces)
            {
                InterfaceGen igen = SymbolTable.Table[iface] as InterfaceGen;
                if (igen == null)
                {
                    log.Warn("implements unknown GInterface " + iface);
                    return(false);
                }
                if (!igen.ValidateForSubclass())
                {
                    log.Warn("implements invalid GInterface " + iface);
                    return(false);
                }
            }

            ArrayList invalids = new ArrayList();

            foreach (Property prop in props.Values)
            {
                if (!prop.Validate(log))
                {
                    invalids.Add(prop);
                }
            }
            foreach (Property prop in invalids)
            {
                props.Remove(prop.Name);
            }
            invalids.Clear();

            foreach (ObjectField field in fields.Values)
            {
                if (!field.Validate(log))
                {
                    invalids.Add(field);
                }
            }
            foreach (ObjectField field in invalids)
            {
                fields.Remove(field.Name);
            }
            invalids.Clear();

            foreach (Method method in methods.Values)
            {
                if (!method.Validate(log))
                {
                    invalids.Add(method);
                }
            }
            foreach (Method method in invalids)
            {
                methods.Remove(method.Name);
            }
            invalids.Clear();

            foreach (Ctor ctor in ctors)
            {
                if (!ctor.Validate(log))
                {
                    invalids.Add(ctor);
                }
            }
            foreach (Ctor ctor in invalids)
            {
                ctors.Remove(ctor);
            }
            invalids.Clear();

            return(true);
        }
Пример #2
0
        public override bool Validate()
        {
            if (Parent != null && !Parent.ValidateForSubclass())
            {
                return(false);
            }
            foreach (string iface in interfaces)
            {
                InterfaceGen igen = SymbolTable.Table[iface] as InterfaceGen;
                if (igen == null)
                {
                    Console.WriteLine(QualifiedName + " implements unknown GInterface " + iface);
                    return(false);
                }
                if (!igen.ValidateForSubclass())
                {
                    Console.WriteLine(QualifiedName + " implements invalid GInterface " + iface);
                    return(false);
                }
            }

            ArrayList invalids = new ArrayList();

            foreach (Property prop in props.Values)
            {
                if (!prop.Validate())
                {
                    Console.WriteLine("in type " + QualifiedName);
                    invalids.Add(prop);
                }
            }
            foreach (Property prop in invalids)
            {
                props.Remove(prop.Name);
            }
            invalids.Clear();

            foreach (Signal sig in sigs.Values)
            {
                if (!sig.Validate())
                {
                    Console.WriteLine("in type " + QualifiedName);
                    invalids.Add(sig);
                }
            }
            foreach (Signal sig in invalids)
            {
                sigs.Remove(sig.Name);
            }
            invalids.Clear();

            foreach (ObjectField field in fields.Values)
            {
                if (!field.Validate())
                {
                    Console.WriteLine("in type " + QualifiedName);
                    invalids.Add(field);
                }
            }
            foreach (ObjectField field in invalids)
            {
                fields.Remove(field.Name);
            }
            invalids.Clear();

            foreach (Method method in methods.Values)
            {
                if (!method.Validate())
                {
                    Console.WriteLine("in type " + QualifiedName);
                    invalids.Add(method);
                }
            }
            foreach (Method method in invalids)
            {
                methods.Remove(method.Name);
            }
            invalids.Clear();

            foreach (Ctor ctor in ctors)
            {
                if (!ctor.Validate())
                {
                    Console.WriteLine("in type " + QualifiedName);
                    invalids.Add(ctor);
                }
            }
            foreach (Ctor ctor in invalids)
            {
                ctors.Remove(ctor);
            }
            invalids.Clear();

            return(true);
        }