Coverage Summary for Class: PermissionQueue (kr.open.library.simple_ui.core.permissions.queue)

Class Class, % Method, % Branch, % Line, % Instruction, %
PermissionQueue 100% (1/1) 71.4% (5/7) 100% (2/2) 77.8% (7/9) 82.4% (28/34)


 package kr.open.library.simple_ui.core.permissions.queue
 
 /**
  * Maintains permission request IDs in FIFO order.<br><br>
  * 권한 요청 ID를 FIFO 순서로 관리합니다.<br>
  *
  * @param backingQueue The mutable list used as the backing store.<br><br>
  *                     내부 저장소로 사용하는 가변 리스트입니다.<br>
  */
 class PermissionQueue(
     private val backingQueue: MutableList<String>,
 ) {
     /**
      * Enqueues [requestId] when it is not already present.<br><br>
      * [requestId]가 이미 없을 때만 큐에 추가합니다.<br>
      *
      * @param requestId The request identifier to enqueue.<br><br>
      *                  큐에 추가할 요청 식별자입니다.<br>
      */
     fun enqueue(requestId: String) {
         if (backingQueue.contains(requestId)) return
         backingQueue.add(requestId)
     }
 
     /**
      * Returns the next request ID without removing it.<br><br>
      * 다음 요청 ID를 제거하지 않고 반환합니다.<br>
      *
      * @return Return value: next request ID or null when empty. Log behavior: none.<br><br>
      *         반환값: 비어 있으면 null, 아니면 다음 요청 ID. 로그 동작: 없음.<br>
      */
     fun peek(): String? = backingQueue.firstOrNull()
 
     /**
      * Removes [requestId] from the queue.<br><br>
      * 큐에서 [requestId]를 제거합니다.<br>
      *
      * @param requestId The request identifier to remove.<br><br>
      *                  제거할 요청 식별자입니다.<br>
      */
     fun remove(requestId: String) {
         backingQueue.remove(requestId)
     }
 
     /**
      * Clears all queued request IDs.<br><br>
      * 큐에 있는 모든 요청 ID를 비웁니다.<br>
      */
     fun clear() {
         backingQueue.clear()
     }
 
     /**
      * Returns whether the queue is empty.<br><br>
      * 큐가 비어 있는지 여부를 반환합니다.<br>
      *
      * @return Return value: true when empty, false otherwise. Log behavior: none.<br><br>
      *         반환값: 비어 있으면 true, 아니면 false. 로그 동작: 없음.<br>
      */
     fun isEmpty(): Boolean = backingQueue.isEmpty()
 
     /**
      * Returns a snapshot list of queued request IDs.<br><br>
      * 큐에 있는 요청 ID 스냅샷 목록을 반환합니다.<br>
      *
      * @return Return value: list of queued request IDs. Log behavior: none.<br><br>
      *         반환값: 큐에 있는 요청 ID 목록. 로그 동작: 없음.<br>
      */
     fun asList(): List<String> = backingQueue.toList()
 }