class TcpDiscoveryClientReconnectMessage extends TcpDiscoveryAbstractMessage {
    /** */
    private static final long serialVersionUID = 0L;

    /** New router nodeID. */
    private final UUID routerNodeId;

    /** Last message ID. */
    private final IgniteUuid lastMsgId;

    /** Pending messages. */
    @GridToStringExclude
    private Collection<TcpDiscoveryAbstractMessage> msgs;

    /**
     * @param creatorNodeId Creator node ID.
     * @param routerNodeId New router node ID.
     * @param lastMsgId Last message ID.
     */
    public TcpDiscoveryClientReconnectMessage(UUID creatorNodeId, UUID routerNodeId, IgniteUuid lastMsgId) {
        super(creatorNodeId);

        this.routerNodeId = routerNodeId;
        this.lastMsgId = lastMsgId;
    }

    /**
     * @return New router node ID.
     */
    public UUID routerNodeId() {
        return routerNodeId;
    }

    /**
     * @return Last message ID.
     */
    public IgniteUuid lastMessageId() {
        return lastMsgId;
    }

    /**
     * @param msgs Pending messages.
     */
    public void pendingMessages(Collection<TcpDiscoveryAbstractMessage> msgs) {
        this.msgs = msgs;
    }

    /**
     * @return Pending messages.
     */
    public Collection<TcpDiscoveryAbstractMessage> pendingMessages() {
        return msgs;
    }

    /**
     * @param success Success flag.
     */
    public void success(boolean success) {
        setFlag(CLIENT_RECON_SUCCESS_FLAG_POS, success);
    }

    /**
     * @return Success flag.
     */
    public boolean success() {
        return getFlag(CLIENT_RECON_SUCCESS_FLAG_POS);
    }

    /** {@inheritDoc} */
    @Override public boolean equals(Object obj) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public String toString() {
        return S.toString(TcpDiscoveryClientReconnectMessage.class, this, "super", super.toString());
    }
}

        // NOTE!
        // Do not call super. As IDs will differ, but we can ignore this.

        if (!(obj instanceof TcpDiscoveryClientReconnectMessage))
            return false;

        TcpDiscoveryClientReconnectMessage other = (TcpDiscoveryClientReconnectMessage)obj;

        return F.eq(creatorNodeId(), other.creatorNodeId()) &&
            F.eq(routerNodeId, other.routerNodeId) &&
            F.eq(lastMsgId, other.lastMsgId);
    
<methods>public void addFailedNode(java.util.UUID) ,public boolean client() ,public void client(boolean) ,public java.util.UUID creatorNodeId() ,public boolean equals(java.lang.Object) ,public void failedNodes(Set<java.util.UUID>) ,public Collection<java.util.UUID> failedNodes() ,public boolean force() ,public void force(boolean) ,public final int hashCode() ,public boolean highPriority() ,public org.apache.ignite.lang.IgniteUuid id() ,public short pendingIndex() ,public void pendingIndex(short) ,public java.util.UUID senderNodeId() ,public void senderNodeId(java.util.UUID) ,public java.lang.String toString() ,public long topologyVersion() ,public void topologyVersion(long) ,public boolean traceLogLevel() ,public boolean verified() ,public java.util.UUID verifierNodeId() ,public void verify(java.util.UUID) <variables>protected static final int CHANGE_TOPOLOGY_FLAG_POS,protected static final int CLIENT_ACK_FLAG_POS,protected static final int CLIENT_FLAG_POS,protected static final int CLIENT_RECON_SUCCESS_FLAG_POS,protected static final int COMPRESS_DATA_PACKET,protected static final int FORCE_FAIL_FLAG_POS,protected static final int RESPONDED_FLAG_POS,private Set<java.util.UUID> failedNodes,private int flags,private org.apache.ignite.lang.IgniteUuid id,private short pendingIdx,private static final long serialVersionUID,private transient java.util.UUID sndNodeId,private long topVer,private java.util.UUID verifierNodeId