public MangoObject[] Parse(string rawText) { Temps = TempParse(rawText); MangoObject[] objects = new MangoObject[Temps.Length]; for (int i = 0; i < objects.Length; i++) { objects[i] = Temps[i].ToMangoObject(); } Sort(objects); return(BaseParent.Children); }
private void Sort(MangoObject[] objects) { for (int i = 0; i < objects.Length; i++) { MangoObject current = objects[i]; MangoObject parent_ = null; int pRange; //parent range int rRange; //rival parent range for (int c = 0; c < objects.Length; c++) { if (!(current == objects[c])) { try { pRange = parent_.ObjectEnd - parent_.ObjectStart; rRange = objects[c].ObjectEnd - objects[c].ObjectStart; if (!(parent_ == null)) { if (parent_.ObjectStart > objects[c].ObjectStart && parent_.ObjectEnd < objects[c].ObjectEnd && rRange < pRange) { parent_ = objects[c]; } } else { throw new NullReferenceException(); } } catch (NullReferenceException) { //parent is null if (parent_.ObjectStart > objects[c].ObjectStart && parent_.ObjectEnd < objects[c].ObjectEnd) { parent_ = objects[c]; } } } if (current.Parent == null) { current.SetParent(BaseParent); } else { current.SetParent(parent_); } } } }
public void SetTaskInitiator(MangoObject mango) { this.mango = mango; }