public boolean isInitialized() {
        return initializedLatch.getCount() == 0;
    }
This class provides an in-memory cache of remote log segment metadata. This maintains the lineage of segments
with respect to leader epochs.
<p>
Remote log segment can go through the state transitions as mentioned in {@link RemoteLogSegmentState}.
<p>
This class will have all the segments which did not reach terminal state viz DELETE_SEGMENT_FINISHED. That means,any
segment reaching the terminal state will get cleared from this instance.
This class provides different methods to fetch segment metadata like {@link #remoteLogSegmentMetadata(int, long)},
{@link #highestOffsetForEpoch(int)}, {@link #listRemoteLogSegments(int)}, {@link #listAllRemoteLogSegments()}. Those
methods have different semantics to fetch the segment based on its state.
<p>
<ul>
<li>
{@link RemoteLogSegmentState#COPY_SEGMENT_STARTED}:
<br>
Segment in this state indicates it is not yet copied successfully. So, these segments will not be
accessible for reads but these are considered for cleanups when a partition is deleted.
</li>
<li>
{@link RemoteLogSegmentState#COPY_SEGMENT_FINISHED}:
<br>
Segment in this state indicates it is successfully copied and it is available for reads. So, these segments
will be accessible for reads. But this should be available for any cleanup activity like deleting segments by the
caller of this class.
</li>
<li>
{@link RemoteLogSegmentState#DELETE_SEGMENT_STARTED}:
Segment in this state indicates it is getting deleted. That means, it is not available for reads. But it should be
available for any cleanup activity like deleting segments by the caller of this class.
</li>
<li>
{@link RemoteLogSegmentState#DELETE_SEGMENT_FINISHED}:
Segment in this state indicate it is already deleted. That means, it is not available for any activity including
reads or cleanup activity. This cache will clear entries containing this state.
</li>
</ul>

<p>
 The below table summarizes whether the segment with the respective state are available for the given methods.
<pre>
+---------------------------------+----------------------+------------------------+-------------------------+-------------------------+
|  Method / SegmentState          | COPY_SEGMENT_STARTED | COPY_SEGMENT_FINISHED  | DELETE_SEGMENT_STARTED  | DELETE_SEGMENT_FINISHED |
|---------------------------------+----------------------+------------------------+-------------------------+-------------------------|
| remoteLogSegmentMetadata        |        No            |           Yes          |          No             |           No            |
| (int leaderEpoch, long offset)  |                      |                        |                         |                         |
|---------------------------------+----------------------+------------------------+-------------------------+-------------------------|
| listRemoteLogSegments           |        Yes           |           Yes          |          Yes            |           No            |
| (int leaderEpoch)               |                      |                        |                         |                         |
|---------------------------------+----------------------+------------------------+-------------------------+-------------------------|
| listAllRemoteLogSegments()      |        Yes           |           Yes          |          Yes            |           No            |
|                                 |                      |                        |                         |                         |
+---------------------------------+----------------------+------------------------+-------------------------+-------------------------+
</pre>
</p>
<p></p>
storage/src/main/java/org/apache/kafka/server/log/remote/metadata/storage/RemoteLogMetadataCache.java