All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.chrome.devtools.client.core.indexeddb.IndexedDB Maven / Gradle / Ivy

package com.hubspot.chrome.devtools.client.core.indexeddb;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hubspot.chrome.devtools.base.ChromeRequest;
import com.hubspot.chrome.devtools.base.ChromeSessionCore;
import java.util.List;
import java.util.concurrent.CompletableFuture;

public final class IndexedDB {
  ChromeSessionCore chromeSession;

  ObjectMapper objectMapper;

  public IndexedDB(ChromeSessionCore chromeSession, ObjectMapper objectMapper) {
    this.chromeSession = chromeSession;
    this.objectMapper = objectMapper;
  }

  /**
   * Clears all entries from an object store.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   * @param objectStoreName  Object store name.
   */
  public void clearObjectStore(String securityOrigin, String databaseName, String objectStoreName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.clearObjectStore");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName);
    chromeSession.send(chromeRequest);
  }

  /**
   * Clears all entries from an object store.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   * @param objectStoreName  Object store name.
   */
  public void clearObjectStoreAsync(String securityOrigin, String databaseName,
      String objectStoreName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.clearObjectStore");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Deletes a database.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   */
  public void deleteDatabase(String securityOrigin, String databaseName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.deleteDatabase");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName);
    chromeSession.send(chromeRequest);
  }

  /**
   * Deletes a database.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   */
  public void deleteDatabaseAsync(String securityOrigin, String databaseName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.deleteDatabase");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Delete a range of entries from an object store
   *
   * @param keyRange  Range of entry keys to delete
   */
  public void deleteObjectStoreEntries(String securityOrigin, String databaseName,
      String objectStoreName, KeyRange keyRange) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.deleteObjectStoreEntries");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName)
        .putParams("keyRange", keyRange);
    chromeSession.send(chromeRequest);
  }

  /**
   * Delete a range of entries from an object store
   *
   * @param keyRange  Range of entry keys to delete
   */
  public void deleteObjectStoreEntriesAsync(String securityOrigin, String databaseName,
      String objectStoreName, KeyRange keyRange) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.deleteObjectStoreEntries");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName)
        .putParams("keyRange", keyRange);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Disables events from backend.
   */
  public void disable() {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.disable");
    chromeSession.send(chromeRequest);
  }

  /**
   * Disables events from backend.
   */
  public void disableAsync() {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.disable");
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Enables events from backend.
   */
  public void enable() {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.enable");
    chromeSession.send(chromeRequest);
  }

  /**
   * Enables events from backend.
   */
  public void enableAsync() {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.enable");
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Requests data from object store or index.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   * @param objectStoreName  Object store name.
   * @param indexName  Index name, empty string for object store data requests.
   * @param skipCount  Number of records to skip.
   * @param pageSize  Number of records to fetch.
   * @param keyRange [Optional] Key range.
   */
  public RequestDataResult requestData(String securityOrigin, String databaseName,
      String objectStoreName, String indexName, Integer skipCount, Integer pageSize,
      KeyRange keyRange) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestData");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName)
        .putParams("indexName", indexName)
        .putParams("skipCount", skipCount)
        .putParams("pageSize", pageSize)
        .putParams("keyRange", keyRange);
    return chromeSession.send(chromeRequest, new TypeReference(){});
  }

  /**
   * Requests data from object store or index.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   * @param objectStoreName  Object store name.
   * @param indexName  Index name, empty string for object store data requests.
   * @param skipCount  Number of records to skip.
   * @param pageSize  Number of records to fetch.
   * @param keyRange [Optional] Key range.
   */
  public CompletableFuture requestDataAsync(String securityOrigin,
      String databaseName, String objectStoreName, String indexName, Integer skipCount,
      Integer pageSize, KeyRange keyRange) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestData");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName)
        .putParams("objectStoreName", objectStoreName)
        .putParams("indexName", indexName)
        .putParams("skipCount", skipCount)
        .putParams("pageSize", pageSize)
        .putParams("keyRange", keyRange);
    return chromeSession.sendAsync(chromeRequest, new TypeReference(){});
  }

  /**
   * Requests database with given name in given frame.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   */
  public DatabaseWithObjectStores requestDatabase(String securityOrigin, String databaseName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestDatabase");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName);
    return chromeSession.send(chromeRequest, new TypeReference(){});
  }

  /**
   * Requests database with given name in given frame.
   *
   * @param securityOrigin  Security origin.
   * @param databaseName  Database name.
   */
  public CompletableFuture requestDatabaseAsync(String securityOrigin,
      String databaseName) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestDatabase");
    chromeRequest
        .putParams("securityOrigin", securityOrigin)
        .putParams("databaseName", databaseName);
    return chromeSession.sendAsync(chromeRequest, new TypeReference(){});
  }

  /**
   * Requests database names for given security origin.
   *
   * @param securityOrigin  Security origin.
   */
  public List requestDatabaseNames(String securityOrigin) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestDatabaseNames");
    chromeRequest
        .putParams("securityOrigin", securityOrigin);
    return chromeSession.send(chromeRequest, new TypeReference>(){});
  }

  /**
   * Requests database names for given security origin.
   *
   * @param securityOrigin  Security origin.
   */
  public CompletableFuture> requestDatabaseNamesAsync(String securityOrigin) {
    ChromeRequest chromeRequest = new ChromeRequest("IndexedDB.requestDatabaseNames");
    chromeRequest
        .putParams("securityOrigin", securityOrigin);
    return chromeSession.sendAsync(chromeRequest, new TypeReference>(){});
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy