/// <summary> /// add an attribute or instance to the library (represented as Story) /// </summary> /// <param name="s"></param> public void Add(Story s) { this.content.Add(s); }
/// <summary> /// remove an attribute or instance from the library, do not use this for data instances! /// </summary> /// <param name="s"></param> public void Remove(Story s) { if (s.Type == EArffTypes.DATA) throw new CekaException("please do not use this function for @data instances!"); this.content.Remove(s); }
/// <summary> /// returns a deep copy of this library /// </summary> /// <returns></returns> public Library toCopy() { Library nl = new Library(); Story[] cc = new Story[this.content.Count]; this.content.CopyTo(cc); nl.content = new List<Story>(cc); return nl; }
/// <summary> /// adds an additional dataset to the library /// </summary> /// <param name="data"></param> public void addDataset(string[] data) { Story s = new Story("", data, EArffTypes.DATA); this.Datasets.Add(s); }
/// <summary> /// adds an numeric attribute, non recursive, "REAL, numeric" /// </summary> /// <param name="name"></param> /// <param name="value"></param> public void addNumericAttribute(string name, string value) { Story s = new Story(name, null, EArffTypes.ATTRIBUTE); s.isNumeric = true; s.Value = value; this.Headers.Add(s); }
/// <summary> /// adds an attribute, non recursive /// </summary> /// <param name="name"></param> /// <param name="span"></param> public void addAttribute(string name, string[] span) { Story s = new Story(name, span, EArffTypes.ATTRIBUTE); this.Headers.Add(s); }
/// <summary> /// turns a simple arff instance into the complex Library and Story related ArffInstance Type /// </summary> /// <returns></returns> public ArffInstance ToComplexInstance() { ArffInstance ai = new ArffInstance(); ai.Headers = new Library(); ai.Datasets = new Library(); ai.Headers.Data = new List<Story>(); ai.Datasets.Data = new List<Story>(); ai.Relation = Relation; Story st = null; foreach (KeyValuePair<string, List<string>> story in this.Attributes) { st = new Story(story.Key, story.Value.ToArray<string>(), EArffTypes.ATTRIBUTE); ai.Headers.Data.Add(st); } foreach (List<string> set in this.Datasets) { st = new Story(null, set.ToArray<string>(), EArffTypes.DATA); ai.Datasets.Data.Add(st); } return ai; }