private void LoadGenerationParameters(ResearchResult r) { while (reader.Read()) { if (reader.Name == "GenerationParameter") { reader.MoveToAttribute("name"); string g = reader.ReadContentAsString(); GenerationParameter gp; if (g == "FileName") { gp = GenerationParameter.AdjacencyMatrix; } else { gp = (GenerationParameter)Enum.Parse(typeof(GenerationParameter), g); } reader.MoveToAttribute("value"); GenerationParameterInfo gpInfo = (GenerationParameterInfo)(gp.GetType().GetField(gp.ToString()).GetCustomAttributes(typeof(GenerationParameterInfo), false)[0]); if (gpInfo.Type.Equals(typeof(UInt32))) { r.GenerationParameterValues.Add(gp, UInt32.Parse(reader.Value)); } else if (gpInfo.Type.Equals(typeof(Double))) { r.GenerationParameterValues.Add(gp, Double.Parse(reader.Value, CultureInfo.InvariantCulture)); } else if (gpInfo.Type.Equals(typeof(Boolean))) { r.GenerationParameterValues.Add(gp, Boolean.Parse(reader.Value)); } else if (gpInfo.Type.Equals(typeof(MatrixPath))) { MatrixPath mp = new MatrixPath(); mp.Path = reader.Value; r.GenerationParameterValues.Add(gp, mp); } else { Debug.Assert(false); //throw new InvalidGenerationParameters(); } } if (reader.Name == "Ensembles") { break; } } }
private string GetDefaultValueForGenerationParameter(GenerationParameter g) { GenerationParameterInfo gInfo = (GenerationParameterInfo)(g.GetType().GetField(g.ToString()).GetCustomAttributes(typeof(GenerationParameterInfo), false)[0]); return(gInfo.DefaultValue); }
private Type GetGenerationParameterType(GenerationParameter g) { GenerationParameterInfo gInfo = (GenerationParameterInfo)(g.GetType().GetField(g.ToString()).GetCustomAttributes(typeof(GenerationParameterInfo), false)[0]); return(gInfo.Type); }
private void LoadGeneralInfo(String folderName, ResearchResult r) { using (StreamReader rd = new StreamReader(folderName + "\\general.txt")) { rd.ReadLine(); r.ResearchID = new Guid(rd.ReadLine().Substring(13)); r.ResearchName = rd.ReadLine().Substring(15); r.ResearchType = (ResearchType)Enum.Parse(typeof(ResearchType), rd.ReadLine().Substring(15)); r.ModelType = (ModelType)Enum.Parse(typeof(ModelType), rd.ReadLine().Substring(12)); r.RealizationCount = Int32.Parse(rd.ReadLine().Substring(19)); r.Date = DateTime.Parse(rd.ReadLine().Substring(7)); r.Size = Int32.Parse(rd.ReadLine().Substring(7)); r.Edges = Double.Parse(rd.ReadLine().Substring(8), CultureInfo.InvariantCulture); rd.ReadLine(); String str = null; while ((str = rd.ReadLine()) != "Generation Parameters") { String[] split = str.Split(' '); ResearchParameter rp = (ResearchParameter)Enum.Parse(typeof(ResearchParameter), split[0]); ResearchParameterInfo rpInfo = (ResearchParameterInfo)(rp.GetType().GetField(rp.ToString()).GetCustomAttributes(typeof(ResearchParameterInfo), false)[0]); if (rpInfo.Type.Equals(typeof(Int32))) { r.ResearchParameterValues.Add(rp, Int32.Parse(split[1])); } else if (rpInfo.Type.Equals(typeof(Double))) { r.ResearchParameterValues.Add(rp, Double.Parse(split[1], CultureInfo.InvariantCulture)); } else if (rpInfo.Type.Equals(typeof(Boolean))) { r.ResearchParameterValues.Add(rp, Boolean.Parse(split[1])); } else if (rpInfo.Type.Equals(typeof(ResearchType))) { r.ResearchParameterValues.Add(rp, split[1]); } else if (rpInfo.Type.Equals(typeof(MatrixPath))) { MatrixPath mp = new MatrixPath(); mp.Path = split[1]; r.ResearchParameterValues.Add(rp, mp); } else { Debug.Assert(false); } } while ((str = rd.ReadLine()) != null) { String[] split = str.Split(' '); GenerationParameter gp; if (split[0] == "FileName") { gp = GenerationParameter.AdjacencyMatrix; } else { gp = (GenerationParameter)Enum.Parse(typeof(GenerationParameter), split[0]); } GenerationParameterInfo gpInfo = (GenerationParameterInfo)(gp.GetType().GetField(gp.ToString()).GetCustomAttributes(typeof(GenerationParameterInfo), false)[0]); if (gpInfo.Type.Equals(typeof(Int32))) { r.GenerationParameterValues.Add(gp, Int32.Parse(split[1])); } else if (gpInfo.Type.Equals(typeof(Double))) { r.GenerationParameterValues.Add(gp, Double.Parse(split[1], CultureInfo.InvariantCulture)); } else if (gpInfo.Type.Equals(typeof(Boolean))) { r.GenerationParameterValues.Add(gp, Boolean.Parse(split[1])); } else if (gpInfo.Type.Equals(typeof(MatrixPath))) { MatrixPath mp = new MatrixPath(); mp.Path = split[1]; r.GenerationParameterValues.Add(gp, mp); } else { Debug.Assert(false); } } } }