public static void Dump(DataItem Item) { if (Item == null) return; Console.WriteLine(" {0}", Item.Action); var Profile = Entry.FromTagged(Item.Text); Dump(Profile as SignedProfile); }
/// <summary> /// Construct an instance from the specified tagged JSONReader stream. /// </summary> /// <param name="JSONReader">Input stream</param> /// <param name="Out">The created object</param> public static void Deserialize(JSONReader JSONReader, out JSONObject Out) { JSONReader.StartObject (); if (JSONReader.EOR) { Out = null; return; } string token = JSONReader.ReadToken (); Out = null; switch (token) { case "DataItem" : { var Result = new DataItem (); Result.Deserialize (JSONReader); Out = Result; break; } case "Header" : { var Result = new Header (); Result.Deserialize (JSONReader); Out = Result; break; } case "Delta" : { var Result = new Delta (); Result.Deserialize (JSONReader); Out = Result; break; } case "IndexTerm" : { var Result = new IndexTerm (); Result.Deserialize (JSONReader); Out = Result; break; } case "Final" : { var Result = new Final (); Result.Deserialize (JSONReader); Out = Result; break; } case "Terminal" : { var Result = new Terminal (); Result.Deserialize (JSONReader); Out = Result; break; } case "IndexIndex" : { var Result = new IndexIndex (); Result.Deserialize (JSONReader); Out = Result; break; } case "Index" : { var Result = new Index (); Result.Deserialize (JSONReader); Out = Result; break; } case "IndexEntry" : { var Result = new IndexEntry (); Result.Deserialize (JSONReader); Out = Result; break; } default : { throw new Exception ("Not supported"); } } JSONReader.EndObject (); }
/// <summary> /// Deserialize a tagged stream /// </summary> /// <param name="JSONReader">The input stream</param> /// <returns>The created object.</returns> public static new DataItem FromTagged (JSONReader JSONReader) { DataItem Out = null; JSONReader.StartObject (); if (JSONReader.EOR) { return null; } string token = JSONReader.ReadToken (); switch (token) { case "DataItem" : { var Result = new DataItem (); Result.Deserialize (JSONReader); Out = Result; break; } default : { //Ignore the unknown data //throw new Exception ("Not supported"); break; } } JSONReader.EndObject (); return Out; }
/// <summary> /// Having read a tag, process the corresponding value data. /// </summary> /// <param name="JSONReader">The input stream</param> /// <param name="Tag">The tag</param> public override void DeserializeToken (JSONReader JSONReader, string Tag) { switch (Tag) { case "DataItems" : { // Have a sequence of values bool _Going = JSONReader.StartArray (); DataItems = new List <DataItem> (); while (_Going) { // an untagged structure. var _Item = new DataItem (JSONReader); DataItems.Add (_Item); _Going = JSONReader.NextArray (); } break; } case "PageKey" : { PageKey = JSONReader.ReadString (); break; } default : { base.DeserializeToken(JSONReader, Tag); break; } } // check up that all the required elements are present }
/// <summary> /// Virtual method that is called by the management class to /// perform the actual write operation to the store. Note that the caller is /// responsible for ensuring all necessary locks are acquired to ensure /// thread safety. /// </summary> /// <param name="DataItem">The data to be written.</param> protected override void pStore(DataItem DataItem) { base.pStore(DataItem); if (!DataItem.Persisted) { Write(DataItem); DataItem.Persisted = true; } }