aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js193
1 files changed, 0 insertions, 193 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js b/contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js
deleted file mode 100644
index 3825c73..0000000
--- a/contexts/data/lib/closure-library/closure/goog/proto2/pbliteserializer.js
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2008 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Protocol Buffer 2 Serializer which serializes messages
- * into PB-Lite ("JsPbLite") format.
- *
- * PB-Lite format is an array where each index corresponds to the associated tag
- * number. For example, a message like so:
- *
- * message Foo {
- * optional int bar = 1;
- * optional int baz = 2;
- * optional int bop = 4;
- * }
- *
- * would be represented as such:
- *
- * [, (bar data), (baz data), (nothing), (bop data)]
- *
- * Note that since the array index is used to represent the tag number, sparsely
- * populated messages with tag numbers that are not continuous (and/or are very
- * large) will have many (empty) spots and thus, are inefficient.
- *
- *
- */
-
-goog.provide('goog.proto2.PbLiteSerializer');
-
-goog.require('goog.proto2.LazyDeserializer');
-goog.require('goog.proto2.Util');
-
-
-
-/**
- * PB-Lite serializer.
- *
- * @constructor
- * @extends {goog.proto2.LazyDeserializer}
- */
-goog.proto2.PbLiteSerializer = function() {};
-goog.inherits(goog.proto2.PbLiteSerializer, goog.proto2.LazyDeserializer);
-
-
-/**
- * If true, fields will be serialized with 0-indexed tags (i.e., the proto
- * field with tag id 1 will have index 0 in the array).
- * @type {boolean}
- * @private
- */
-goog.proto2.PbLiteSerializer.prototype.zeroIndexing_ = false;
-
-
-/**
- * By default, the proto tag with id 1 will have index 1 in the serialized
- * array.
- *
- * If the serializer is set to use zero-indexing, the tag with id 1 will have
- * index 0.
- *
- * @param {boolean} zeroIndexing Whether this serializer should deal with
- * 0-indexed protos.
- */
-goog.proto2.PbLiteSerializer.prototype.setZeroIndexed = function(zeroIndexing) {
- this.zeroIndexing_ = zeroIndexing;
-};
-
-
-/**
- * Serializes a message to a PB-Lite object.
- *
- * @param {goog.proto2.Message} message The message to be serialized.
- * @return {!Array} The serialized form of the message.
- * @override
- */
-goog.proto2.PbLiteSerializer.prototype.serialize = function(message) {
- var descriptor = message.getDescriptor();
- var fields = descriptor.getFields();
-
- var serialized = [];
- var zeroIndexing = this.zeroIndexing_;
-
- // Add the known fields.
- for (var i = 0; i < fields.length; i++) {
- var field = fields[i];
-
- if (!message.has(field)) {
- continue;
- }
-
- var tag = field.getTag();
- var index = zeroIndexing ? tag - 1 : tag;
-
- if (field.isRepeated()) {
- serialized[index] = [];
-
- for (var j = 0; j < message.countOf(field); j++) {
- serialized[index][j] =
- this.getSerializedValue(field, message.get(field, j));
- }
- } else {
- serialized[index] = this.getSerializedValue(field, message.get(field));
- }
- }
-
- // Add any unknown fields.
- message.forEachUnknown(function(tag, value) {
- var index = zeroIndexing ? tag - 1 : tag;
- serialized[index] = value;
- });
-
- return serialized;
-};
-
-
-/** @override */
-goog.proto2.PbLiteSerializer.prototype.deserializeField =
- function(message, field, value) {
-
- if (value == null) {
- // Since value double-equals null, it may be either null or undefined.
- // Ensure we return the same one, since they have different meanings.
- return value;
- }
-
- if (field.isRepeated()) {
- var data = [];
-
- goog.proto2.Util.assert(goog.isArray(value));
-
- for (var i = 0; i < value.length; i++) {
- data[i] = this.getDeserializedValue(field, value[i]);
- }
-
- return data;
- } else {
- return this.getDeserializedValue(field, value);
- }
-};
-
-
-/** @override */
-goog.proto2.PbLiteSerializer.prototype.getSerializedValue =
- function(field, value) {
- if (field.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL) {
- // Booleans are serialized in numeric form.
- return value ? 1 : 0;
- }
-
- return goog.proto2.Serializer.prototype.getSerializedValue.apply(this,
- arguments);
-};
-
-
-/** @override */
-goog.proto2.PbLiteSerializer.prototype.getDeserializedValue =
- function(field, value) {
-
- if (field.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL) {
- // Booleans are serialized in numeric form.
- return value === 1;
- }
-
- return goog.proto2.Serializer.prototype.getDeserializedValue.apply(this,
- arguments);
-};
-
-
-/** @override */
-goog.proto2.PbLiteSerializer.prototype.deserialize =
- function(descriptor, data) {
- var toConvert = data;
- if (this.zeroIndexing_) {
- // Make the data align with tag-IDs (1-indexed) by shifting everything
- // up one.
- toConvert = [];
- for (var key in data) {
- toConvert[parseInt(key, 10) + 1] = data[key];
- }
- }
- return goog.base(this, 'deserialize', descriptor, toConvert);
-};