Esempio n. 1
0
 internal EntityDefinition(
     XElement element,
     EntityDefinition baseEntity = null,
     ExtendedKeyedCollection <string, PropertyDefinition> properties = null,
     ExtendedKeyedCollection <string, Variable> variables            = null)
     : this(element, element.AttributeValueOrThrow(AttributeNames.Name), baseEntity, properties, variables)
 {
 }
Esempio n. 2
0
        internal Record(EntityDefinition entity, string id = null)
        {
            Entity     = entity;
            Tags       = new TagCollection();
            Properties = new Dictionary <string, object>();

            if (id != null)
            {
                Properties[PropertyDefinition.IdName] = id;
            }
        }
Esempio n. 3
0
        public IEnumerable <EntityDefinition> BaseEntities()
        {
            EntityDefinition type = BaseEntity;

            while (type != null)
            {
                yield return(type);

                type = type.BaseEntity;
            }
        }
Esempio n. 4
0
        private static Variable FindVariable(string name, EntityDefinition entity)
        {
            do
            {
                if (entity.Variables.TryGetValue(name, out Variable variable))
                {
                    return(variable);
                }

                entity = entity.BaseEntity;
            } while (entity != null);

            return(default(Variable));
        }
Esempio n. 5
0
        private static PropertyDefinition FindProperty(string name, EntityDefinition entity)
        {
            do
            {
                if (entity.Properties.TryGetValue(name, out PropertyDefinition property))
                {
                    return(property);
                }

                entity = entity.BaseEntity;
            } while (entity != null);

            return(default(PropertyDefinition));
        }
Esempio n. 6
0
        internal Record WithEntity(EntityDefinition entity)
        {
            var record = new Record(entity, Id);

            foreach (KeyValuePair <string, object> pair in Properties)
            {
                record[pair.Key] = pair.Value;
            }

            foreach (string tag in Tags)
            {
                record.Tags.Add(tag);
            }

            return(record);
        }
Esempio n. 7
0
        public EntityElement(XElement element, DocumentSettings settings, EntityDefinition baseEntity = null)
        {
            Settings = settings;

            Scan(element.Elements());

            ExtendedKeyedCollection <string, PropertyDefinition> properties = null;
            ExtendedKeyedCollection <string, Variable>           variables  = null;

            if (_declarationsElement != null)
            {
                ScanDeclarations(_declarationsElement.Elements(), out properties, out variables);
            }

            Entity = new EntityDefinition(element, baseEntity, properties, variables);
        }
Esempio n. 8
0
        private EntityDefinition(
            XElement element,
            string name,
            EntityDefinition baseEntity = null,
            ExtendedKeyedCollection <string, PropertyDefinition> properties = null,
            ExtendedKeyedCollection <string, Variable> variables            = null)
        {
            Name = name;

            if (baseEntity == null && !IsGlobalEntity)
            {
                baseEntity = Global;
            }

            BaseEntity = baseEntity;

            if (properties != null)
            {
                if (!IsGlobalEntity && baseEntity != null)
                {
                    foreach (PropertyDefinition property in properties)
                    {
                        if (FindProperty(property.Name, baseEntity) != null)
                        {
                            ThrowHelper.ThrowInvalidOperation(ErrorMessages.PropertyAlreadyDefined(property.Name, name), element);
                        }
                    }
                }

                Properties = new PropertyDefinitionCollection(properties);
            }
            else
            {
                Properties = Empty.PropertyDefinitionCollection;
            }

            if (variables != null)
            {
                Variables = new VariableCollection(variables);
            }
            else
            {
                Variables = Empty.VariableCollection;
            }
        }
Esempio n. 9
0
        internal EntityDefinition(
            string name,
            EntityDefinition baseEntity = null,
            ExtendedKeyedCollection <string, PropertyDefinition> properties = null,
            ExtendedKeyedCollection <string, Variable> variables            = null)
        {
            Name = name;

            BaseEntity = baseEntity;

            Properties = (properties != null)
                ? new PropertyDefinitionCollection(properties)
                : Empty.PropertyDefinitionCollection;

            Variables = (variables != null)
                ? new VariableCollection(variables)
                : Empty.VariableCollection;
        }
Esempio n. 10
0
        public EntityReader(XElement element, DocumentReaderSettings settings, EntityDefinition baseEntity = null)
        {
            Settings = settings;

            Scan(element.Elements());

            ExtendedKeyedCollection <string, PropertyDefinition> properties = null;
            ExtendedKeyedCollection <string, Variable>           variables  = null;

            if (_declarationsElement != null)
            {
                ScanDeclarations(_declarationsElement.Elements(), out properties, out variables);
            }

            Entity = new EntityDefinition(
                element.AttributeValueOrThrow(AttributeNames.Name),
                baseEntity,
                properties,
                variables,
                element);
        }
Esempio n. 11
0
 public RecordReaderBase(XElement element, EntityDefinition entity, DocumentReaderSettings settings)
 {
     Element  = element;
     Entity   = entity;
     Settings = settings;
 }
Esempio n. 12
0
 public BaseRecordReader(XElement element, EntityDefinition entity, DocumentSettings settings)
     : base(element, entity, settings)
 {
 }
Esempio n. 13
0
 protected AbstractRecordReader(XElement element, EntityDefinition entity, DocumentSettings settings)
 {
     Element  = element;
     Entity   = entity;
     Settings = settings;
 }
Esempio n. 14
0
 public RecordReader(XElement element, EntityDefinition entity, DocumentReaderSettings settings, IEnumerable <Record> baseRecords = null)
     : base(element, entity, settings)
 {
     BaseRecords = (baseRecords != null) ? new BaseRecordCollection(baseRecords) : Empty.BaseRecordCollection;
 }