// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.sdk.internal.v8native.protocol.input.data; import org.chromium.sdk.internal.protocolparser.JsonOptionalField; import org.chromium.sdk.internal.protocolparser.JsonOverrideField; import org.chromium.sdk.internal.protocolparser.JsonSubtype; import org.chromium.sdk.internal.protocolparser.JsonSubtypeCasting; import org.chromium.sdk.internal.protocolparser.JsonType; /** * A serialization of a JavaScript value. May be cast to {@link ObjectValueHandle} if value is * an object. * <p>Gets serialized in mirror-delay.js, * JSONProtocolSerializer.prototype.serialize_, main part */ @JsonType public interface ValueHandle extends JsonSubtype<SomeHandle> { @JsonOverrideField long handle(); String text(); @JsonOptionalField Object value(); @JsonOverrideField String type(); // for string type (the true length, value field may be truncated) @JsonOptionalField Long length(); @JsonOptionalField Long fromIndex(); @JsonOptionalField Long toIndex(); @JsonOptionalField String className(); @JsonSubtypeCasting ObjectValueHandle asObject(); @JsonSubtypeCasting void asNotObject(); }