internal static void Dump(AssistantDumper assistant, Association value, bool withSeparator = false)
        {
            assistant.IncrementDepth();
            if (assistant.MaximumDepthExceeded())
                return;

            assistant.AddStartObject();
            assistant.AddType("Dogen.TestModels.CSharpModel.Association", true/*withSeparator*/);
            if (value == null)
            {
                assistant.Add("data", "<null>");
                assistant.AddEndObject();
                return;
            }

            assistant.AddKey("data");
            assistant.AddPairSeparator();
            assistant.AddStartObject();
            assistant.Add("Prop0", value.Prop0, true/*withSeparator*/);
            assistant.AddKey("Prop1");
            assistant.AddPairSeparator();
            Dogen.TestModels.CSharpModel.NoPropertiesDumper.Dump(assistant, value.Prop1, true/*withSeparator*/);
            assistant.AddKey("Prop2");
            assistant.AddPairSeparator();
            Dogen.TestModels.CSharpModel.ColourTypesDumper.Dump(assistant, value.Prop2);
            assistant.AddEndObject(); // data
            assistant.AddEndObject(); // main object
            assistant.HandleMemberSeparator(withSeparator);

            assistant.DecrementDepth();
        }
 public static string Dump(Association value)
 {
     var assistant = new AssistantDumper();
     Dump(assistant, value);
     return assistant.ToString();
 }