class DumpClusterState {

    void dump() throws IOException
    {
        SimpleStorage<MemberId> memberIdStorage = new SimpleFileStorage<>( fs, clusterStateDirectory, CORE_MEMBER_ID_NAME,
                new Marshal(), NullLogProvider.getInstance() );
        if ( memberIdStorage.exists() )
        {
            MemberId memberId = memberIdStorage.readState();
            out.println( CORE_MEMBER_ID_NAME + ": " + memberId );
        }

        dumpState( LAST_FLUSHED_NAME, new LongIndexMarshal() );
        dumpState( LOCK_TOKEN_NAME, new ReplicatedLockTokenState.Marshal( new Marshal() ) );
        dumpState( ID_ALLOCATION_NAME, new IdAllocationState.Marshal() );
        dumpState( SESSION_TRACKER_NAME, new GlobalSessionTrackerState.Marshal( new Marshal() ) );

        /* raft state */
        dumpState( RAFT_MEMBERSHIP_NAME, new RaftMembershipState.Marshal() );
        dumpState( RAFT_TERM_NAME, new TermState.Marshal() );
        dumpState( RAFT_VOTE_NAME, new VoteState.Marshal( new Marshal() ) );
    }

      DumpClusterState( FileSystemAbstraction fs, File dataDirectory, PrintStream out );

}