@Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   OpenSecureChannelRequest other = (OpenSecureChannelRequest) obj;
   if (RequestHeader == null) {
     if (other.RequestHeader != null) return false;
   } else if (!RequestHeader.equals(other.RequestHeader)) return false;
   if (ClientProtocolVersion == null) {
     if (other.ClientProtocolVersion != null) return false;
   } else if (!ClientProtocolVersion.equals(other.ClientProtocolVersion)) return false;
   if (RequestType == null) {
     if (other.RequestType != null) return false;
   } else if (!RequestType.equals(other.RequestType)) return false;
   if (SecurityMode == null) {
     if (other.SecurityMode != null) return false;
   } else if (!SecurityMode.equals(other.SecurityMode)) return false;
   if (ClientNonce == null) {
     if (other.ClientNonce != null) return false;
   } else if (!ClientNonce.equals(other.ClientNonce)) return false;
   if (RequestedLifetime == null) {
     if (other.RequestedLifetime != null) return false;
   } else if (!RequestedLifetime.equals(other.RequestedLifetime)) return false;
   return true;
 }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   ModifySubscriptionRequest other = (ModifySubscriptionRequest) obj;
   if (RequestHeader == null) {
     if (other.RequestHeader != null) return false;
   } else if (!RequestHeader.equals(other.RequestHeader)) return false;
   if (SubscriptionId == null) {
     if (other.SubscriptionId != null) return false;
   } else if (!SubscriptionId.equals(other.SubscriptionId)) return false;
   if (RequestedPublishingInterval == null) {
     if (other.RequestedPublishingInterval != null) return false;
   } else if (!RequestedPublishingInterval.equals(other.RequestedPublishingInterval)) return false;
   if (RequestedLifetimeCount == null) {
     if (other.RequestedLifetimeCount != null) return false;
   } else if (!RequestedLifetimeCount.equals(other.RequestedLifetimeCount)) return false;
   if (RequestedMaxKeepAliveCount == null) {
     if (other.RequestedMaxKeepAliveCount != null) return false;
   } else if (!RequestedMaxKeepAliveCount.equals(other.RequestedMaxKeepAliveCount)) return false;
   if (MaxNotificationsPerPublish == null) {
     if (other.MaxNotificationsPerPublish != null) return false;
   } else if (!MaxNotificationsPerPublish.equals(other.MaxNotificationsPerPublish)) return false;
   if (Priority == null) {
     if (other.Priority != null) return false;
   } else if (!Priority.equals(other.Priority)) return false;
   return true;
 }
 /**
  * Deep clone
  *
  * @return cloned OpenSecureChannelRequest
  */
 public OpenSecureChannelRequest clone() {
   OpenSecureChannelRequest result = (OpenSecureChannelRequest) super.clone();
   result.RequestHeader = RequestHeader == null ? null : RequestHeader.clone();
   result.ClientProtocolVersion = ClientProtocolVersion;
   result.RequestType = RequestType;
   result.SecurityMode = SecurityMode;
   result.ClientNonce = ClientNonce;
   result.RequestedLifetime = RequestedLifetime;
   return result;
 }
 /**
  * Deep clone
  *
  * @return cloned ModifySubscriptionRequest
  */
 public ModifySubscriptionRequest clone() {
   ModifySubscriptionRequest result = (ModifySubscriptionRequest) super.clone();
   result.RequestHeader = RequestHeader == null ? null : RequestHeader.clone();
   result.SubscriptionId = SubscriptionId;
   result.RequestedPublishingInterval = RequestedPublishingInterval;
   result.RequestedLifetimeCount = RequestedLifetimeCount;
   result.RequestedMaxKeepAliveCount = RequestedMaxKeepAliveCount;
   result.MaxNotificationsPerPublish = MaxNotificationsPerPublish;
   result.Priority = Priority;
   return result;
 }
 @Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + ((RequestHeader == null) ? 0 : RequestHeader.hashCode());
   result =
       prime * result + ((ClientProtocolVersion == null) ? 0 : ClientProtocolVersion.hashCode());
   result = prime * result + ((RequestType == null) ? 0 : RequestType.hashCode());
   result = prime * result + ((SecurityMode == null) ? 0 : SecurityMode.hashCode());
   result = prime * result + ((ClientNonce == null) ? 0 : ClientNonce.hashCode());
   result = prime * result + ((RequestedLifetime == null) ? 0 : RequestedLifetime.hashCode());
   return result;
 }
 @Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + ((RequestHeader == null) ? 0 : RequestHeader.hashCode());
   result = prime * result + ((SubscriptionId == null) ? 0 : SubscriptionId.hashCode());
   result =
       prime * result
           + ((RequestedPublishingInterval == null) ? 0 : RequestedPublishingInterval.hashCode());
   result =
       prime * result + ((RequestedLifetimeCount == null) ? 0 : RequestedLifetimeCount.hashCode());
   result =
       prime * result
           + ((RequestedMaxKeepAliveCount == null) ? 0 : RequestedMaxKeepAliveCount.hashCode());
   result =
       prime * result
           + ((MaxNotificationsPerPublish == null) ? 0 : MaxNotificationsPerPublish.hashCode());
   result = prime * result + ((Priority == null) ? 0 : Priority.hashCode());
   return result;
 }