示例#1
0
        public static DataFormat ParseDataFormatXmLFile(Url url)
        {
            if (url == null)
            {
                throw new ConcurrentGraphException("The data format specification file cannot be found.");
            }

            string dataFormatName;

            List <ColumnDescription> columns = new List <ColumnDescription>();

            XmlDocument document = new XmlDocument();

            document.Load(url.OpenStream());

            XmlElement root = document.DocumentElement;

            if (root.Name.Equals("dataformat"))
            {
                dataFormatName = root.GetAttribute("name");
            }
            else
            {
                throw new ConcurrentGraphException("Data format specification file must contain one 'dataformat' element. ");
            }

            XmlNodeList cols = root.GetElementsByTagName("column");

            int i = 0;

            for (; i < cols.Count; i++)
            {
                XmlElement col = (XmlElement)cols[i];

                ColumnDescription column = new ColumnDescription(i, col.GetAttribute("name"), ColumnDescription.GetCategory(col.GetAttribute("category")), ColumnDescription.GetType(col.GetAttribute("type")), col.GetAttribute("default"), false);

                columns.Add(column);
            }

            columns.Add(new ColumnDescription(i++, "PPPATH", ColumnDescription.DependencyEdgeLabel, ColumnDescription.String, "_", true));

            columns.Add(new ColumnDescription(i++, "PPLIFTED", ColumnDescription.DependencyEdgeLabel, ColumnDescription.String, "_", true));

            columns.Add(new ColumnDescription(i, "PPCOVERED", ColumnDescription.DependencyEdgeLabel, ColumnDescription.String, "_", true));

            return(new DataFormat(dataFormatName, columns));
        }
示例#2
0
        public virtual ColumnDescription GetColumnDescription(string columnName)
        {
            ColumnDescription columnDescription = columnMap[columnName];

            if (columnDescription != null)
            {
                return(columnDescription);
            }

            foreach (ColumnDescription description in columns)
            {
                if (description.Name.Equals(columnName.ToUpper()))
                {
                    columnMap[columnName] = description;

                    return(description);
                }
            }

            return(null);
        }