class ClientCacheChangeDummyDiscoveryMessage extends AbstractCachePartitionExchangeWorkerTask
    implements DiscoveryCustomMessage {
    /** */
    private static final long serialVersionUID = 0L;

    /** */
    private final UUID reqId;

    /** */
    private final Map<String, DynamicCacheChangeRequest> startReqs;

    /** */
    @GridToStringInclude
    private final Set<String> cachesToClose;

    /**
     * @param secCtx Security context in which current task must be executed.
     * @param reqId Start request ID.
     * @param startReqs Caches start requests.
     * @param cachesToClose Cache to close.
     */
    public ClientCacheChangeDummyDiscoveryMessage(
        SecurityContext secCtx,
        UUID reqId,
        @Nullable Map<String, DynamicCacheChangeRequest> startReqs,
        @Nullable Set<String> cachesToClose
    ) {
        super(secCtx);

        assert reqId != null;
        assert startReqs != null ^ cachesToClose != null;

        this.reqId = reqId;
        this.startReqs = startReqs;
        this.cachesToClose = cachesToClose;
    }

    /** {@inheritDoc} */
    @Override public boolean skipForExchangeMerge() {
        return true;
    }

    /**
     * @return Start request ID.
     */
    UUID requestId() {
        return reqId;
    }

    /**
     * @return Cache start requests.
     */
    @Nullable Map<String, DynamicCacheChangeRequest> startRequests() {
        return startReqs;
    }

    /**
     * @return Client caches to close.
     */
    Set<String> cachesToClose() {
        return cachesToClose;
    }

    /** {@inheritDoc} */
    @Override public IgniteUuid id() {
        throw new UnsupportedOperationException();
    }

    /** {@inheritDoc} */
    @Nullable @Override public DiscoveryCustomMessage ackMessage() {
        throw new UnsupportedOperationException();
    }

    /** {@inheritDoc} */
    @Override public boolean isMutable() {
        throw new UnsupportedOperationException();
    }

    /** {@inheritDoc} */
    @Nullable @Override public DiscoCache createDiscoCache(GridDiscoveryManager mgr,
        AffinityTopologyVersion topVer, DiscoCache discoCache) {
        throw new UnsupportedOperationException();
    }

    /** {@inheritDoc} */
    @Override public String toString() {<FILL_FUNCTION_BODY>}
}

        return S.toString(ClientCacheChangeDummyDiscoveryMessage.class, this,
            "startCaches", (startReqs != null ? startReqs.keySet() : ""));
    
<methods>public org.apache.ignite.internal.processors.security.SecurityContext securityContext() <variables>private final non-sealed org.apache.ignite.internal.processors.security.SecurityContext secCtx