public override string ToString()
        {
            StringBuilder __sb    = new StringBuilder("TDDIAssertedRelationshipUnion(");
            bool          __first = true;

            if (AssertedArtifactSupport != null && __isset.AssertedArtifactSupport)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("AssertedArtifactSupport: ");
                __sb.Append(AssertedArtifactSupport == null ? "<null>" : AssertedArtifactSupport.ToString());
            }
            if (AssertedArtifactContext != null && __isset.AssertedArtifactContext)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("AssertedArtifactContext: ");
                __sb.Append(AssertedArtifactContext == null ? "<null>" : AssertedArtifactContext.ToString());
            }
            if (AssertedInference != null && __isset.AssertedInference)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("AssertedInference: ");
                __sb.Append(AssertedInference == null ? "<null>" : AssertedInference.ToString());
            }
            if (AssertedEvidence != null && __isset.AssertedEvidence)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("AssertedEvidence: ");
                __sb.Append(AssertedEvidence == null ? "<null>" : AssertedEvidence.ToString());
            }
            if (AssertedContext != null && __isset.AssertedContext)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("AssertedContext: ");
                __sb.Append(AssertedContext == null ? "<null>" : AssertedContext.ToString());
            }
            __sb.Append(")");
            return(__sb.ToString());
        }
 public void Write(TProtocol oprot)
 {
     oprot.IncrementRecursionDepth();
     try
     {
         TStruct struc = new TStruct("TDDIAssertedRelationshipUnion");
         oprot.WriteStructBegin(struc);
         TField field = new TField();
         if (AssertedArtifactSupport != null && __isset.AssertedArtifactSupport)
         {
             field.Name = "AssertedArtifactSupport";
             field.Type = TType.Struct;
             field.ID   = 1;
             oprot.WriteFieldBegin(field);
             AssertedArtifactSupport.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (AssertedArtifactContext != null && __isset.AssertedArtifactContext)
         {
             field.Name = "AssertedArtifactContext";
             field.Type = TType.Struct;
             field.ID   = 2;
             oprot.WriteFieldBegin(field);
             AssertedArtifactContext.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (AssertedInference != null && __isset.AssertedInference)
         {
             field.Name = "AssertedInference";
             field.Type = TType.Struct;
             field.ID   = 3;
             oprot.WriteFieldBegin(field);
             AssertedInference.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (AssertedEvidence != null && __isset.AssertedEvidence)
         {
             field.Name = "AssertedEvidence";
             field.Type = TType.Struct;
             field.ID   = 4;
             oprot.WriteFieldBegin(field);
             AssertedEvidence.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (AssertedContext != null && __isset.AssertedContext)
         {
             field.Name = "AssertedContext";
             field.Type = TType.Struct;
             field.ID   = 5;
             oprot.WriteFieldBegin(field);
             AssertedContext.Write(oprot);
             oprot.WriteFieldEnd();
         }
         oprot.WriteFieldStop();
         oprot.WriteStructEnd();
     }
     finally
     {
         oprot.DecrementRecursionDepth();
     }
 }