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) { }
internal Record(EntityDefinition entity, string id = null) { Entity = entity; Tags = new TagCollection(); Properties = new Dictionary <string, object>(); if (id != null) { Properties[PropertyDefinition.IdName] = id; } }
public IEnumerable <EntityDefinition> BaseEntities() { EntityDefinition type = BaseEntity; while (type != null) { yield return(type); type = type.BaseEntity; } }
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)); }
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)); }
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); }
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); }
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; } }
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; }
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); }
public RecordReaderBase(XElement element, EntityDefinition entity, DocumentReaderSettings settings) { Element = element; Entity = entity; Settings = settings; }
public BaseRecordReader(XElement element, EntityDefinition entity, DocumentSettings settings) : base(element, entity, settings) { }
protected AbstractRecordReader(XElement element, EntityDefinition entity, DocumentSettings settings) { Element = element; Entity = entity; Settings = settings; }
public RecordReader(XElement element, EntityDefinition entity, DocumentReaderSettings settings, IEnumerable <Record> baseRecords = null) : base(element, entity, settings) { BaseRecords = (baseRecords != null) ? new BaseRecordCollection(baseRecords) : Empty.BaseRecordCollection; }