< Summary

Information
Class: ValidateLib.Metadata.ParsingAndValidation.MetadataParserValidator
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\Metadata\ParsingAndValidation\MetadataParserValidator.cs
Line coverage
98%
Covered lines: 53
Uncovered lines: 1
Coverable lines: 54
Total lines: 109
Line coverage: 98.1%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\Metadata\ParsingAndValidation\MetadataParserValidator.cs

#LineLine coverage
 1using Newtonsoft.Json.Linq;
 2using ValidateLib.ErrorsAndWarnings.Warnings;
 3using ValidateLib.Metadata.Descriptors;
 4using ValidateLib.Metadata.Parsers;
 5using ValidateLib.Metadata.Validators;
 6using ValidateLib.UtilityClasses;
 7
 8namespace ValidateLib.Metadata.ParsingAndValidation
 9{
 10    public class MetadataParserValidator
 11    {
 12        /// <summary>
 13        /// Method which parses and validates metadata document containing TableGroup Descriptor and
 14        /// returns object representing such descriptor.
 15        /// </summary>
 16        /// <param name="warnings">List where warnings are stored</param>
 17        /// <param name="metadataUrlOrFilePath">Url or path to a metadata document</param>
 18        /// <returns>Object representing TableGroup Descriptor</returns>
 19        /// <exception cref="ArgumentException"></exception>
 20        public static TableGroupDescriptor ProcessTableGroup(List<Warning> warnings, string metadataUrlOrFilePath)
 21        {
 122            JObject? jObject = ObjectPropertyUtilityClass.GetDescriptor(metadataUrlOrFilePath);
 123            if (jObject is null) throw new ArgumentException();
 124            var metadataLocation = IriUtilityClass.GetMetadataLocation(metadataUrlOrFilePath);
 125            var context = Context.GetContextFromJToken(jObject, warnings, metadataLocation!);
 126            TableGroupDescriptor.Normalize(jObject, context);
 27
 128            var tableGroupDescriptor = new TableGroupDescriptor();
 129            tableGroupDescriptor.context = context;
 130            var tableGroupDescriptorParser = new TableGroupParser(warnings, tableGroupDescriptor);
 131            tableGroupDescriptor = tableGroupDescriptorParser.ParseJToken(jObject, "tableGroup");
 132            tableGroupDescriptor.PassInheritedProperties();
 133            ApplyMetadataTGValidators(warnings, tableGroupDescriptor);
 134            return tableGroupDescriptor;
 35        }
 36
 37
 38        public static TableGroupDescriptor ProcessTableGroup(List<Warning> warnings, string metadataPathOrUrl, JObject j
 39        {
 140            var metadataLocation = IriUtilityClass.GetMetadataLocation(metadataPathOrUrl);
 141            if (metadataLocation is null)
 042                throw new ArgumentException();
 143            var context = Context.GetContextFromJToken(jObject, warnings, metadataLocation);
 144            TableGroupDescriptor.Normalize(jObject, context);
 45
 146            var tableGroupDescriptor = new TableGroupDescriptor();
 147            tableGroupDescriptor.context = context;
 148            var tableGroupDescriptorParser = new TableGroupParser(warnings, tableGroupDescriptor);
 149            tableGroupDescriptor = tableGroupDescriptorParser.ParseJToken(jObject, "tableGroup");
 150            tableGroupDescriptor.PassInheritedProperties();
 151            ApplyMetadataTGValidators(warnings, tableGroupDescriptor);
 152            return tableGroupDescriptor;
 53        }
 54
 55        /// <summary>
 56        /// Method which parses and validates metadata document containing Table Descriptor and
 57        /// returns object representing such descriptor.
 58        /// </summary>
 59        /// <param name="warnings">List where warnings are stored</param>
 60        /// <param name="metadataUrlOrFilePath">Url or path to a metadata document</param>
 61        /// <returns>Object representing Table Descriptor</returns>
 62        /// <exception cref="ArgumentException"></exception>
 63        public static TableDescriptor ProcessTable(List<Warning> warnings, string metadataUrlOrFilePath)
 64        {
 165            JObject? jObject = ObjectPropertyUtilityClass.GetDescriptor(metadataUrlOrFilePath);
 166            if (jObject is null) throw new ArgumentException();
 167            var metadataLocation = IriUtilityClass.GetMetadataLocation(metadataUrlOrFilePath);
 168            var context = Context.GetContextFromJToken(jObject, warnings, metadataLocation!);
 169            TableDescriptor.Normalize(jObject, context);
 70
 171            var tableDescriptor = new TableDescriptor();
 172            tableDescriptor.context = context;
 173            var tableDescriptorParser = new TableParser(warnings, tableDescriptor);
 174            tableDescriptor = tableDescriptorParser.ParseJToken(jObject, "table");
 175            tableDescriptor.PassInheritedProperties();
 176            ApplyMetadataTableValidators(warnings, tableDescriptor);
 177            return tableDescriptor;
 78        }
 79
 80        internal static TableDescriptor ProcessTableFromJObject(List<Warning> warnings, JObject metadataObject, string f
 81        {
 182            if (metadataObject is null) throw new ArgumentException("Could not find the file");
 183            var context = Context.GetContextFromJToken(metadataObject, warnings, filePath);
 184            TableDescriptor.Normalize(metadataObject, context);
 85
 186            var tableDescriptor = new TableDescriptor();
 187            tableDescriptor.context = context;
 188            var tableDescriptorParser = new TableParser(warnings, tableDescriptor);
 189            tableDescriptor = tableDescriptorParser.ParseJToken(metadataObject, "table");
 190            tableDescriptor.PassInheritedProperties();
 191            ApplyMetadataTableValidators(warnings, tableDescriptor);
 192            return tableDescriptor;
 93        }
 94
 95        static void ApplyMetadataTGValidators(List<Warning> warnings, TableGroupDescriptor tableGroupDescriptor)
 96        {
 197            ForeignKeyValidator foreignKeyValidator = new ForeignKeyValidator();
 198            warnings.AddRange(foreignKeyValidator.Validate(tableGroupDescriptor));
 199            TitlesValidator titlesValidator = new TitlesValidator();
 1100            warnings.AddRange(titlesValidator.Validate(tableGroupDescriptor));
 1101        }
 102        static void ApplyMetadataTableValidators(List<Warning> warnings, TableDescriptor tableDescriptor)
 103        {
 1104            TitlesValidator titlesValidator = new TitlesValidator();
 1105            warnings.AddRange(titlesValidator.Validate(tableDescriptor));
 1106        }
 107
 108    }
 109}