Beispiel #1
0
        private List <recordDefinition> GetRecordDefinitions(flatFileDefinition flatFileDefinition)
        {
            recordDefinition[] recordDefinitions = flatFileDefinition.recordDefinitions;
            Assert.AssertNotNull(Resources.AddmlMessages.RecordDefinitions, recordDefinitions);

            return(new List <recordDefinition>(recordDefinitions));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public FieldIndex(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition,
                   fieldDefinitionReference fieldDefinitionReference)
     : this(flatFileDefinition.name, recordDefinition.name, fieldDefinitionReference.name)
 {
 }
Beispiel #6
0
 public FieldIndex(flatFileDefinition flatFileDefinition, recordDefinition recordDefinition,
                   fieldDefinition fieldDefinition)
     : this(flatFileDefinition.name, recordDefinition.name, fieldDefinition.name)
 {
 }