private List <recordDefinition> GetRecordDefinitions(flatFileDefinition flatFileDefinition) { recordDefinition[] recordDefinitions = flatFileDefinition.recordDefinitions; Assert.AssertNotNull(Resources.AddmlMessages.RecordDefinitions, recordDefinitions); return(new List <recordDefinition>(recordDefinitions)); }
private List <FieldIndex> GetForeignKeyIndexes(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition, key key) { var indexes = new List <FieldIndex>(); foreach (var fieldReference in key.fieldDefinitionReferences) { indexes.Add(new FieldIndex(flatFileDefinition, recordDefinition, fieldReference)); } return(indexes); }
private void AddAddmlFieldDefinitions(AddmlFlatFileDefinition addmlFlatFileDefinition, flatFileDefinition flatFileDefinition) { List <recordDefinition> recordDefinitions = GetRecordDefinitions(flatFileDefinition); foreach (recordDefinition recordDefinition in recordDefinitions) { string recordDefinitionName = recordDefinition.name; int? recordLength = GetRecordLength(recordDefinition); string recordDefinitionFieldValue = recordDefinition.recordDefinitionFieldValue; List <string> recordProcesses = GetRecordProcessNames(addmlFlatFileDefinition.Name, recordDefinition.name); List <AddmlForeignKey> foreignKeys = GetForeignKeysForRecord(flatFileDefinition, recordDefinition); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinition.AddAddmlRecordDefinition(recordDefinitionName, recordLength, recordDefinitionFieldValue, foreignKeys, recordProcesses); List <fieldDefinition> fieldDefinitions = GetFieldDefinitions(recordDefinition); foreach (fieldDefinition fieldDefinition in fieldDefinitions) { string name = fieldDefinition.name; int? startPosition = GetStartPosition(fieldDefinition); int? endPosition = GetEndPosition(fieldDefinition); // Henter slutt-posisjon med ny funksjon DataType dataType = GetFieldType(fieldDefinition.typeReference); bool isPartOfPrimaryKey = IsPartOfPrimaryKey(recordDefinition, fieldDefinition); bool isUnique = IsUnique(fieldDefinition); bool isNullable = IsNullable(fieldDefinition); int? minLength = GetMinLength(fieldDefinition); int? maxLength = GetMaxLength(fieldDefinition); int? fixedLength = GetFixedLength(fieldDefinition) ?? endPosition - startPosition + 1; List <string> processes = GetFieldProcessNames(flatFileDefinition.name, recordDefinition.name, fieldDefinition.name); List <AddmlCode> addmlCodes = GetCodes(fieldDefinition); AddmlFieldDefinition addAddmlFieldDefinition = addmlRecordDefinition.AddAddmlFieldDefinition( name, startPosition, fixedLength, dataType, isUnique, isNullable, minLength, maxLength, processes, addmlCodes, isPartOfPrimaryKey); FieldIndex fieldIndex = new FieldIndex(flatFileDefinition, recordDefinition, fieldDefinition); if (_allFieldDefinitions.ContainsKey(fieldIndex)) { throw new AddmlDefinitionParseException("ADDML file already contains a field definition with same index: " + fieldIndex); } _allFieldDefinitions.Add(fieldIndex, addAddmlFieldDefinition); } } }
private List <AddmlForeignKey> GetForeignKeysForRecord(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition) { List <AddmlForeignKey> foreignKeys = new List <AddmlForeignKey>(); key[] keys = recordDefinition.keys; if (keys != null) { foreach (key key in keys) { var foreignKey = key.Item as foreignKey; if (foreignKey != null) { var addmlForeignKey = new AddmlForeignKey(key.name); addmlForeignKey.ForeignKeyIndexes = GetForeignKeyIndexes(flatFileDefinition, recordDefinition, key); addmlForeignKey.ForeignKeyReferenceIndexes = GetForeignKeyReferenceIndexes(foreignKey); foreignKeys.Add(addmlForeignKey); } } } return(foreignKeys); }
public FieldIndex(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition, fieldDefinitionReference fieldDefinitionReference) : this(flatFileDefinition.name, recordDefinition.name, fieldDefinitionReference.name) { }
public FieldIndex(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition, fieldDefinition fieldDefinition) : this(flatFileDefinition.name, recordDefinition.name, fieldDefinition.name) { }