Esempio n. 1
0
        public void ResolveReference(IEntityAttribute field)
        {
            if (field is EntityField && field.Type is EntityClass)
            {
                EntityField e = (EntityField)field;
                if (e.ReferenceType == null && e.Type != null && e.Mult != Multiplicity.OneToOne)
                {
                    EntityField reference = new EntityField();
                    reference.Name          = e.Parent.Name;
                    reference.Type          = e.Parent;
                    reference.InfoOnly      = true;
                    reference.ReferenceType = e;

                    EntityClass entity = ((EntityClass)field.Type);
                    if (entity.HasField(reference.Name))
                    {
                        e.ReferenceType = entity.GetField(reference.Name);
                    }
                    else
                    {
                        e.ReferenceType = reference;
                        entity.AddField(reference);
                    }

                    ResolveReferenceMultiplicity(e);
                }
            }
        }
Esempio n. 2
0
        private void ParseField(XmlNode node, Object obj)
        {
            try {
                EntityClass entity = (EntityClass)obj;

                EntityField field = entity.GetField(GetAttribute(node, "name"));
                if (field != null)
                {
                    Log.Info("Parsing Field {0}...", field.Name);

                    field.IsPreview  = ToBool(GetAttribute(node, "isPreview"));
                    field.Represents = ToBool(GetAttribute(node, "represents"));

                    foreach (XmlNode child in node.ChildNodes)
                    {
                        if (child is XmlComment)
                        {
                            continue;
                        }
                        parsers[child.Name](child, field);
                    }

                    Log.Info("Field {0} parsed!", field.Name);
                }
                else
                {
                    Log.Info("Ignoring field {0}. This field doesn't exist.", node.Name);
                }
            } catch (Exception e) {
                Log.Error("Error parsing field {0}! - {1}", GetAttribute(node, "name"), e.Message);
            }
        }