# lib/webdriver/serializable.js

1 | // Licensed to the Software Freedom Conservancy (SFC) under one
2 | // or more contributor license agreements. See the NOTICE file
3 | // distributed with this work for additional information
4 | // regarding copyright ownership. The SFC licenses this file
5 | // to you under the Apache License, Version 2.0 (the
6 | // "License"); you may not use this file except in compliance
7 | // with the License. You may obtain a copy of the License at
8 | //
9 | // http://www.apache.org/licenses/LICENSE-2.0
10 | //
11 | // Unless required by applicable law or agreed to in writing,
12 | // software distributed under the License is distributed on an
13 | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | // KIND, either express or implied. See the License for the
15 | // specific language governing permissions and limitations
16 | // under the License.
17 |
18 | goog.provide('webdriver.Serializable');
19 |
20 |
21 |
22 | /**
23 | * Defines an object that can be asynchronously serialized to its WebDriver
24 | * wire representation.
25 | *
26 | * @constructor
27 | * @template T
28 | */
29 | webdriver.Serializable = function() {};
30 |
31 |
32 | /**
33 | * Returns either this instance's serialized represention, if immediately
34 | * available, or a promise for its serialized representation. This function is
35 | * conceptually equivalent to objects that have a {@code toJSON()} property,
36 | * except the serialize() result may be a promise or an object containing a
37 | * promise (which are not directly JSON friendly).
38 | *
39 | * @return {!(T|IThenable.<!T>)} This instance's serialized wire format.
40 | */
41 | webdriver.Serializable.prototype.serialize = goog.abstractMethod;