Example #1
0
        internal void Resolve(SchemaInfo schemaInfo)
        {
            if (parentSchema != null)
            {
                // already resolved, probably as part of included schema Resolve() process
                return;
            }

            parentSchema = schemaInfo;

            Table.Resolve(this.Name, true);
            Table.Rehash();

            Table.Fields[0].ReferencedClass = schemaInfo.FindClassByName(Table.Fields[0].References);
            if (Table.Fields[0].ReferencedClass == null)
            {
                throw new SoodaSchemaException("Class " + Table.Fields[0].References + " not found in " + this.Name + "." + Table.Fields[0].Name);
            }
            Table.Fields[1].ReferencedClass = schemaInfo.FindClassByName(Table.Fields[1].References);
            if (Table.Fields[1].ReferencedClass == null)
            {
                throw new SoodaSchemaException("Class " + Table.Fields[1].References + " not found in " + this.Name + "." + Table.Fields[1].Name);
            }
            foreach (FieldInfo fi in Table.Fields)
            {
                fi.ParentRelation = this;
            }
        }