public void Write(TProtocol oprot)
 {
     oprot.IncrementRecursionDepth();
     try
     {
         TStruct struc = new TStruct("TDDIBaseElementUnion");
         oprot.WriteStructBegin(struc);
         TField field = new TField();
         if (DesignArtifact != null && __isset.DesignArtifact)
         {
             field.Name = "DesignArtifact";
             field.Type = TType.Struct;
             field.ID   = 1;
             oprot.WriteFieldBegin(field);
             DesignArtifact.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (ODEPackage != null && __isset.ODEPackage)
         {
             field.Name = "ODEPackage";
             field.Type = TType.Struct;
             field.ID   = 2;
             oprot.WriteFieldBegin(field);
             ODEPackage.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (FailureAnalysisArtifact != null && __isset.FailureAnalysisArtifact)
         {
             field.Name = "FailureAnalysisArtifact";
             field.Type = TType.Struct;
             field.ID   = 3;
             oprot.WriteFieldBegin(field);
             FailureAnalysisArtifact.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (DependabilityArtifact != null && __isset.DependabilityArtifact)
         {
             field.Name = "DependabilityArtifact";
             field.Type = TType.Struct;
             field.ID   = 4;
             oprot.WriteFieldBegin(field);
             DependabilityArtifact.Write(oprot);
             oprot.WriteFieldEnd();
         }
         oprot.WriteFieldStop();
         oprot.WriteStructEnd();
     }
     finally
     {
         oprot.DecrementRecursionDepth();
     }
 }
        public override string ToString()
        {
            StringBuilder __sb    = new StringBuilder("TDDIBaseElementUnion(");
            bool          __first = true;

            if (DesignArtifact != null && __isset.DesignArtifact)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("DesignArtifact: ");
                __sb.Append(DesignArtifact == null ? "<null>" : DesignArtifact.ToString());
            }
            if (ODEPackage != null && __isset.ODEPackage)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("ODEPackage: ");
                __sb.Append(ODEPackage);
            }
            if (FailureAnalysisArtifact != null && __isset.FailureAnalysisArtifact)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("FailureAnalysisArtifact: ");
                __sb.Append(FailureAnalysisArtifact);
            }
            if (DependabilityArtifact != null && __isset.DependabilityArtifact)
            {
                if (!__first)
                {
                    __sb.Append(", ");
                }
                __first = false;
                __sb.Append("DependabilityArtifact: ");
                __sb.Append(DependabilityArtifact);
            }
            __sb.Append(")");
            return(__sb.ToString());
        }