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

com.hubspot.chrome.devtools.client.core.EventDeserializer Maven / Gradle / Ivy

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

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.hubspot.chrome.devtools.client.core.animation.AnimationCanceledEvent;
import com.hubspot.chrome.devtools.client.core.animation.AnimationCreatedEvent;
import com.hubspot.chrome.devtools.client.core.animation.AnimationStartedEvent;
import com.hubspot.chrome.devtools.client.core.applicationcache.ApplicationCacheStatusUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.applicationcache.NetworkStateUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.css.FontsUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.css.MediaQueryResultChangedEvent;
import com.hubspot.chrome.devtools.client.core.css.StyleSheetAddedEvent;
import com.hubspot.chrome.devtools.client.core.css.StyleSheetChangedEvent;
import com.hubspot.chrome.devtools.client.core.css.StyleSheetRemovedEvent;
import com.hubspot.chrome.devtools.client.core.database.AddDatabaseEvent;
import com.hubspot.chrome.devtools.client.core.dom.AttributeModifiedEvent;
import com.hubspot.chrome.devtools.client.core.dom.AttributeRemovedEvent;
import com.hubspot.chrome.devtools.client.core.dom.CharacterDataModifiedEvent;
import com.hubspot.chrome.devtools.client.core.dom.ChildNodeCountUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.dom.ChildNodeInsertedEvent;
import com.hubspot.chrome.devtools.client.core.dom.ChildNodeRemovedEvent;
import com.hubspot.chrome.devtools.client.core.dom.DistributedNodesUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.dom.DocumentUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.dom.InlineStyleInvalidatedEvent;
import com.hubspot.chrome.devtools.client.core.dom.PseudoElementAddedEvent;
import com.hubspot.chrome.devtools.client.core.dom.PseudoElementRemovedEvent;
import com.hubspot.chrome.devtools.client.core.dom.SetChildNodesEvent;
import com.hubspot.chrome.devtools.client.core.dom.ShadowRootPoppedEvent;
import com.hubspot.chrome.devtools.client.core.dom.ShadowRootPushedEvent;
import com.hubspot.chrome.devtools.client.core.domstorage.DomStorageItemAddedEvent;
import com.hubspot.chrome.devtools.client.core.domstorage.DomStorageItemRemovedEvent;
import com.hubspot.chrome.devtools.client.core.domstorage.DomStorageItemUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.domstorage.DomStorageItemsClearedEvent;
import com.hubspot.chrome.devtools.client.core.emulation.VirtualTimeAdvancedEvent;
import com.hubspot.chrome.devtools.client.core.emulation.VirtualTimeBudgetExpiredEvent;
import com.hubspot.chrome.devtools.client.core.emulation.VirtualTimePausedEvent;
import com.hubspot.chrome.devtools.client.core.headlessexperimental.MainFrameReadyForScreenshotsEvent;
import com.hubspot.chrome.devtools.client.core.headlessexperimental.NeedsBeginFramesChangedEvent;
import com.hubspot.chrome.devtools.client.core.inspector.DetachedEvent;
import com.hubspot.chrome.devtools.client.core.inspector.TargetCrashedEvent;
import com.hubspot.chrome.devtools.client.core.inspector.TargetReloadedAfterCrashEvent;
import com.hubspot.chrome.devtools.client.core.layertree.LayerPaintedEvent;
import com.hubspot.chrome.devtools.client.core.layertree.LayerTreeDidChangeEvent;
import com.hubspot.chrome.devtools.client.core.log.EntryAddedEvent;
import com.hubspot.chrome.devtools.client.core.network.DataReceivedEvent;
import com.hubspot.chrome.devtools.client.core.network.EventSourceMessageReceivedEvent;
import com.hubspot.chrome.devtools.client.core.network.LoadingFailedEvent;
import com.hubspot.chrome.devtools.client.core.network.LoadingFinishedEvent;
import com.hubspot.chrome.devtools.client.core.network.RequestInterceptedEvent;
import com.hubspot.chrome.devtools.client.core.network.RequestServedFromCacheEvent;
import com.hubspot.chrome.devtools.client.core.network.RequestWillBeSentEvent;
import com.hubspot.chrome.devtools.client.core.network.ResourceChangedPriorityEvent;
import com.hubspot.chrome.devtools.client.core.network.ResponseReceivedEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketClosedEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketCreatedEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketFrameErrorEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketFrameReceivedEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketFrameSentEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketHandshakeResponseReceivedEvent;
import com.hubspot.chrome.devtools.client.core.network.WebSocketWillSendHandshakeRequestEvent;
import com.hubspot.chrome.devtools.client.core.overlay.InspectNodeRequestedEvent;
import com.hubspot.chrome.devtools.client.core.overlay.NodeHighlightRequestedEvent;
import com.hubspot.chrome.devtools.client.core.overlay.ScreenshotRequestedEvent;
import com.hubspot.chrome.devtools.client.core.page.DomContentEventFiredEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameAttachedEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameClearedScheduledNavigationEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameDetachedEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameNavigatedEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameResizedEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameScheduledNavigationEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameStartedLoadingEvent;
import com.hubspot.chrome.devtools.client.core.page.FrameStoppedLoadingEvent;
import com.hubspot.chrome.devtools.client.core.page.InterstitialHiddenEvent;
import com.hubspot.chrome.devtools.client.core.page.InterstitialShownEvent;
import com.hubspot.chrome.devtools.client.core.page.JavascriptDialogClosedEvent;
import com.hubspot.chrome.devtools.client.core.page.JavascriptDialogOpeningEvent;
import com.hubspot.chrome.devtools.client.core.page.LifecycleEventEvent;
import com.hubspot.chrome.devtools.client.core.page.LoadEventFiredEvent;
import com.hubspot.chrome.devtools.client.core.page.ScreencastFrameEvent;
import com.hubspot.chrome.devtools.client.core.page.ScreencastVisibilityChangedEvent;
import com.hubspot.chrome.devtools.client.core.page.WindowOpenEvent;
import com.hubspot.chrome.devtools.client.core.performance.MetricsEvent;
import com.hubspot.chrome.devtools.client.core.security.CertificateErrorEvent;
import com.hubspot.chrome.devtools.client.core.security.SecurityStateChangedEvent;
import com.hubspot.chrome.devtools.client.core.serviceworker.WorkerErrorReportedEvent;
import com.hubspot.chrome.devtools.client.core.serviceworker.WorkerRegistrationUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.serviceworker.WorkerVersionUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.storage.CacheStorageContentUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.storage.CacheStorageListUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.storage.IndexedDBContentUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.storage.IndexedDBListUpdatedEvent;
import com.hubspot.chrome.devtools.client.core.target.AttachedToTargetEvent;
import com.hubspot.chrome.devtools.client.core.target.DetachedFromTargetEvent;
import com.hubspot.chrome.devtools.client.core.target.ReceivedMessageFromTargetEvent;
import com.hubspot.chrome.devtools.client.core.target.TargetCreatedEvent;
import com.hubspot.chrome.devtools.client.core.target.TargetDestroyedEvent;
import com.hubspot.chrome.devtools.client.core.target.TargetInfoChangedEvent;
import com.hubspot.chrome.devtools.client.core.tethering.AcceptedEvent;
import com.hubspot.chrome.devtools.client.core.tracing.BufferUsageEvent;
import com.hubspot.chrome.devtools.client.core.tracing.DataCollectedEvent;
import com.hubspot.chrome.devtools.client.core.tracing.TracingCompleteEvent;
import java.io.IOException;

public class EventDeserializer extends StdDeserializer {
  private final ObjectMapper objectMapper;

  public EventDeserializer() {
    super(Event.class);
    this.objectMapper = new ObjectMapper();
  }

  @Override
  public Event deserialize(JsonParser p, DeserializationContext context) throws IOException,
      JsonProcessingException {
    JsonNode node = p.readValueAsTree();
    JsonNode field = node.findValue("method");
    String method = field.asText();
    switch (method) {
      case "Network.dataReceived": {
        return objectMapper.readValue(node.findValue("params").toString(), DataReceivedEvent.class);
      }
      case "Network.eventSourceMessageReceived": {
        return objectMapper.readValue(node.findValue("params").toString(), EventSourceMessageReceivedEvent.class);
      }
      case "Network.loadingFailed": {
        return objectMapper.readValue(node.findValue("params").toString(), LoadingFailedEvent.class);
      }
      case "Network.loadingFinished": {
        return objectMapper.readValue(node.findValue("params").toString(), LoadingFinishedEvent.class);
      }
      case "Network.requestIntercepted": {
        return objectMapper.readValue(node.findValue("params").toString(), RequestInterceptedEvent.class);
      }
      case "Network.requestServedFromCache": {
        return objectMapper.readValue(node.findValue("params").toString(), RequestServedFromCacheEvent.class);
      }
      case "Network.requestWillBeSent": {
        return objectMapper.readValue(node.findValue("params").toString(), RequestWillBeSentEvent.class);
      }
      case "Network.resourceChangedPriority": {
        return objectMapper.readValue(node.findValue("params").toString(), ResourceChangedPriorityEvent.class);
      }
      case "Network.responseReceived": {
        return objectMapper.readValue(node.findValue("params").toString(), ResponseReceivedEvent.class);
      }
      case "Network.webSocketClosed": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketClosedEvent.class);
      }
      case "Network.webSocketCreated": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketCreatedEvent.class);
      }
      case "Network.webSocketFrameError": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketFrameErrorEvent.class);
      }
      case "Network.webSocketFrameReceived": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketFrameReceivedEvent.class);
      }
      case "Network.webSocketFrameSent": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketFrameSentEvent.class);
      }
      case "Network.webSocketHandshakeResponseReceived": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketHandshakeResponseReceivedEvent.class);
      }
      case "Network.webSocketWillSendHandshakeRequest": {
        return objectMapper.readValue(node.findValue("params").toString(), WebSocketWillSendHandshakeRequestEvent.class);
      }
      case "ServiceWorker.workerErrorReported": {
        return objectMapper.readValue(node.findValue("params").toString(), WorkerErrorReportedEvent.class);
      }
      case "ServiceWorker.workerRegistrationUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), WorkerRegistrationUpdatedEvent.class);
      }
      case "ServiceWorker.workerVersionUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), WorkerVersionUpdatedEvent.class);
      }
      case "Page.domContentEventFired": {
        return objectMapper.readValue(node.findValue("params").toString(), DomContentEventFiredEvent.class);
      }
      case "Page.frameAttached": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameAttachedEvent.class);
      }
      case "Page.frameClearedScheduledNavigation": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameClearedScheduledNavigationEvent.class);
      }
      case "Page.frameDetached": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameDetachedEvent.class);
      }
      case "Page.frameNavigated": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameNavigatedEvent.class);
      }
      case "Page.frameResized": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameResizedEvent.class);
      }
      case "Page.frameScheduledNavigation": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameScheduledNavigationEvent.class);
      }
      case "Page.frameStartedLoading": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameStartedLoadingEvent.class);
      }
      case "Page.frameStoppedLoading": {
        return objectMapper.readValue(node.findValue("params").toString(), FrameStoppedLoadingEvent.class);
      }
      case "Page.interstitialHidden": {
        return objectMapper.readValue(node.findValue("params").toString(), InterstitialHiddenEvent.class);
      }
      case "Page.interstitialShown": {
        return objectMapper.readValue(node.findValue("params").toString(), InterstitialShownEvent.class);
      }
      case "Page.javascriptDialogClosed": {
        return objectMapper.readValue(node.findValue("params").toString(), JavascriptDialogClosedEvent.class);
      }
      case "Page.javascriptDialogOpening": {
        return objectMapper.readValue(node.findValue("params").toString(), JavascriptDialogOpeningEvent.class);
      }
      case "Page.lifecycleEvent": {
        return objectMapper.readValue(node.findValue("params").toString(), LifecycleEventEvent.class);
      }
      case "Page.loadEventFired": {
        return objectMapper.readValue(node.findValue("params").toString(), LoadEventFiredEvent.class);
      }
      case "Page.screencastFrame": {
        return objectMapper.readValue(node.findValue("params").toString(), ScreencastFrameEvent.class);
      }
      case "Page.screencastVisibilityChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), ScreencastVisibilityChangedEvent.class);
      }
      case "Page.windowOpen": {
        return objectMapper.readValue(node.findValue("params").toString(), WindowOpenEvent.class);
      }
      case "Tethering.accepted": {
        return objectMapper.readValue(node.findValue("params").toString(), AcceptedEvent.class);
      }
      case "ApplicationCache.applicationCacheStatusUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), ApplicationCacheStatusUpdatedEvent.class);
      }
      case "ApplicationCache.networkStateUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), NetworkStateUpdatedEvent.class);
      }
      case "DOMStorage.domStorageItemAdded": {
        return objectMapper.readValue(node.findValue("params").toString(), DomStorageItemAddedEvent.class);
      }
      case "DOMStorage.domStorageItemRemoved": {
        return objectMapper.readValue(node.findValue("params").toString(), DomStorageItemRemovedEvent.class);
      }
      case "DOMStorage.domStorageItemUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), DomStorageItemUpdatedEvent.class);
      }
      case "DOMStorage.domStorageItemsCleared": {
        return objectMapper.readValue(node.findValue("params").toString(), DomStorageItemsClearedEvent.class);
      }
      case "Emulation.virtualTimeAdvanced": {
        return objectMapper.readValue(node.findValue("params").toString(), VirtualTimeAdvancedEvent.class);
      }
      case "Emulation.virtualTimeBudgetExpired": {
        return objectMapper.readValue(node.findValue("params").toString(), VirtualTimeBudgetExpiredEvent.class);
      }
      case "Emulation.virtualTimePaused": {
        return objectMapper.readValue(node.findValue("params").toString(), VirtualTimePausedEvent.class);
      }
      case "Storage.cacheStorageContentUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), CacheStorageContentUpdatedEvent.class);
      }
      case "Storage.cacheStorageListUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), CacheStorageListUpdatedEvent.class);
      }
      case "Storage.indexedDBContentUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), IndexedDBContentUpdatedEvent.class);
      }
      case "Storage.indexedDBListUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), IndexedDBListUpdatedEvent.class);
      }
      case "Target.attachedToTarget": {
        return objectMapper.readValue(node.findValue("params").toString(), AttachedToTargetEvent.class);
      }
      case "Target.detachedFromTarget": {
        return objectMapper.readValue(node.findValue("params").toString(), DetachedFromTargetEvent.class);
      }
      case "Target.receivedMessageFromTarget": {
        return objectMapper.readValue(node.findValue("params").toString(), ReceivedMessageFromTargetEvent.class);
      }
      case "Target.targetCreated": {
        return objectMapper.readValue(node.findValue("params").toString(), TargetCreatedEvent.class);
      }
      case "Target.targetDestroyed": {
        return objectMapper.readValue(node.findValue("params").toString(), TargetDestroyedEvent.class);
      }
      case "Target.targetInfoChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), TargetInfoChangedEvent.class);
      }
      case "Overlay.inspectNodeRequested": {
        return objectMapper.readValue(node.findValue("params").toString(), InspectNodeRequestedEvent.class);
      }
      case "Overlay.nodeHighlightRequested": {
        return objectMapper.readValue(node.findValue("params").toString(), NodeHighlightRequestedEvent.class);
      }
      case "Overlay.screenshotRequested": {
        return objectMapper.readValue(node.findValue("params").toString(), ScreenshotRequestedEvent.class);
      }
      case "Tracing.bufferUsage": {
        return objectMapper.readValue(node.findValue("params").toString(), BufferUsageEvent.class);
      }
      case "Tracing.dataCollected": {
        return objectMapper.readValue(node.findValue("params").toString(), DataCollectedEvent.class);
      }
      case "Tracing.tracingComplete": {
        return objectMapper.readValue(node.findValue("params").toString(), TracingCompleteEvent.class);
      }
      case "HeadlessExperimental.mainFrameReadyForScreenshots": {
        return objectMapper.readValue(node.findValue("params").toString(), MainFrameReadyForScreenshotsEvent.class);
      }
      case "HeadlessExperimental.needsBeginFramesChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), NeedsBeginFramesChangedEvent.class);
      }
      case "Log.entryAdded": {
        return objectMapper.readValue(node.findValue("params").toString(), EntryAddedEvent.class);
      }
      case "DOM.attributeModified": {
        return objectMapper.readValue(node.findValue("params").toString(), AttributeModifiedEvent.class);
      }
      case "DOM.attributeRemoved": {
        return objectMapper.readValue(node.findValue("params").toString(), AttributeRemovedEvent.class);
      }
      case "DOM.characterDataModified": {
        return objectMapper.readValue(node.findValue("params").toString(), CharacterDataModifiedEvent.class);
      }
      case "DOM.childNodeCountUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), ChildNodeCountUpdatedEvent.class);
      }
      case "DOM.childNodeInserted": {
        return objectMapper.readValue(node.findValue("params").toString(), ChildNodeInsertedEvent.class);
      }
      case "DOM.childNodeRemoved": {
        return objectMapper.readValue(node.findValue("params").toString(), ChildNodeRemovedEvent.class);
      }
      case "DOM.distributedNodesUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), DistributedNodesUpdatedEvent.class);
      }
      case "DOM.documentUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), DocumentUpdatedEvent.class);
      }
      case "DOM.inlineStyleInvalidated": {
        return objectMapper.readValue(node.findValue("params").toString(), InlineStyleInvalidatedEvent.class);
      }
      case "DOM.pseudoElementAdded": {
        return objectMapper.readValue(node.findValue("params").toString(), PseudoElementAddedEvent.class);
      }
      case "DOM.pseudoElementRemoved": {
        return objectMapper.readValue(node.findValue("params").toString(), PseudoElementRemovedEvent.class);
      }
      case "DOM.setChildNodes": {
        return objectMapper.readValue(node.findValue("params").toString(), SetChildNodesEvent.class);
      }
      case "DOM.shadowRootPopped": {
        return objectMapper.readValue(node.findValue("params").toString(), ShadowRootPoppedEvent.class);
      }
      case "DOM.shadowRootPushed": {
        return objectMapper.readValue(node.findValue("params").toString(), ShadowRootPushedEvent.class);
      }
      case "Inspector.detached": {
        return objectMapper.readValue(node.findValue("params").toString(), DetachedEvent.class);
      }
      case "Inspector.targetCrashed": {
        return objectMapper.readValue(node.findValue("params").toString(), TargetCrashedEvent.class);
      }
      case "Inspector.targetReloadedAfterCrash": {
        return objectMapper.readValue(node.findValue("params").toString(), TargetReloadedAfterCrashEvent.class);
      }
      case "LayerTree.layerPainted": {
        return objectMapper.readValue(node.findValue("params").toString(), LayerPaintedEvent.class);
      }
      case "LayerTree.layerTreeDidChange": {
        return objectMapper.readValue(node.findValue("params").toString(), LayerTreeDidChangeEvent.class);
      }
      case "Security.certificateError": {
        return objectMapper.readValue(node.findValue("params").toString(), CertificateErrorEvent.class);
      }
      case "Security.securityStateChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), SecurityStateChangedEvent.class);
      }
      case "Animation.animationCanceled": {
        return objectMapper.readValue(node.findValue("params").toString(), AnimationCanceledEvent.class);
      }
      case "Animation.animationCreated": {
        return objectMapper.readValue(node.findValue("params").toString(), AnimationCreatedEvent.class);
      }
      case "Animation.animationStarted": {
        return objectMapper.readValue(node.findValue("params").toString(), AnimationStartedEvent.class);
      }
      case "CSS.fontsUpdated": {
        return objectMapper.readValue(node.findValue("params").toString(), FontsUpdatedEvent.class);
      }
      case "CSS.mediaQueryResultChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), MediaQueryResultChangedEvent.class);
      }
      case "CSS.styleSheetAdded": {
        return objectMapper.readValue(node.findValue("params").toString(), StyleSheetAddedEvent.class);
      }
      case "CSS.styleSheetChanged": {
        return objectMapper.readValue(node.findValue("params").toString(), StyleSheetChangedEvent.class);
      }
      case "CSS.styleSheetRemoved": {
        return objectMapper.readValue(node.findValue("params").toString(), StyleSheetRemovedEvent.class);
      }
      case "Database.addDatabase": {
        return objectMapper.readValue(node.findValue("params").toString(), AddDatabaseEvent.class);
      }
      case "Performance.metrics": {
        return objectMapper.readValue(node.findValue("params").toString(), MetricsEvent.class);
      }
    }
    throw new IOException("Unable to deserialize " + node.toString());
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy