~ubuntu-branches/debian/squeeze/protobuf/squeeze

« back to all changes in this revision

Viewing changes to python/google/protobuf/message.py

  • Committer: Bazaar Package Importer
  • Author(s): Julien Cristau
  • Date: 2009-06-02 16:19:00 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090602161900-vm176i3ryt35yk91
Tags: 2.0.3-2.2
* Non-maintainer upload.
* Fix FTBFS from -2.1: don't fail when we can't clean up the java build,
  such as when openjdk isn't installed.
* Disable parallel builds, because libtool is made of fail (if binary-arch
  and build-indep run concurrently, we relink a library while it's being
  used; that doesn't work so well).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Protocol Buffers - Google's data interchange format
2
 
# Copyright 2008 Google Inc.
 
2
# Copyright 2008 Google Inc.  All rights reserved.
3
3
# http://code.google.com/p/protobuf/
4
4
#
5
 
# Licensed under the Apache License, Version 2.0 (the "License");
6
 
# you may not use this file except in compliance with the License.
7
 
# 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, software
12
 
# distributed under the License is distributed on an "AS IS" BASIS,
13
 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
# See the License for the specific language governing permissions and
15
 
# limitations under the License.
 
5
# Redistribution and use in source and binary forms, with or without
 
6
# modification, are permitted provided that the following conditions are
 
7
# met:
 
8
#
 
9
#     * Redistributions of source code must retain the above copyright
 
10
# notice, this list of conditions and the following disclaimer.
 
11
#     * Redistributions in binary form must reproduce the above
 
12
# copyright notice, this list of conditions and the following disclaimer
 
13
# in the documentation and/or other materials provided with the
 
14
# distribution.
 
15
#     * Neither the name of Google Inc. nor the names of its
 
16
# contributors may be used to endorse or promote products derived from
 
17
# this software without specific prior written permission.
 
18
#
 
19
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
20
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
21
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
22
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
23
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
24
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
25
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
26
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
27
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
28
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
29
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16
30
 
17
31
# TODO(robinson): We should just make these methods all "pure-virtual" and move
18
32
# all implementation out, into reflection.py for now.
65
79
    return text_format.MessageToString(self)
66
80
 
67
81
  def MergeFrom(self, other_msg):
 
82
    """Merges the contents of the specified message into current message.
 
83
 
 
84
    This method merges the contents of the specified message into the current
 
85
    message. Singular fields that are set in the specified message overwrite
 
86
    the corresponding fields in the current message. Repeated fields are
 
87
    appended. Singular sub-messages and groups are recursively merged.
 
88
 
 
89
    Args:
 
90
      other_msg: Message to merge into the current message.
 
91
    """
68
92
    raise NotImplementedError
69
93
 
70
94
  def CopyFrom(self, other_msg):
71
 
    raise NotImplementedError
 
95
    """Copies the content of the specified message into the current message.
 
96
 
 
97
    The method clears the current message and then merges the specified
 
98
    message using MergeFrom.
 
99
 
 
100
    Args:
 
101
      other_msg: Message to copy into the current one.
 
102
    """
 
103
    if self == other_msg:
 
104
      return
 
105
    self.Clear()
 
106
    self.MergeFrom(other_msg)
72
107
 
73
108
  def Clear(self):
 
109
    """Clears all data that was set in the message."""
74
110
    raise NotImplementedError
75
111
 
76
112
  def IsInitialized(self):
 
113
    """Checks if the message is initialized.
 
114
 
 
115
    Returns:
 
116
      The method returns True if the message is initialized (i.e. all of its
 
117
      required fields are set).
 
118
    """
77
119
    raise NotImplementedError
78
120
 
79
121
  # TODO(robinson): MergeFromString() should probably return None and be
118
160
    self.MergeFromString(serialized)
119
161
 
120
162
  def SerializeToString(self):
 
163
    """Serializes the protocol message to a binary string.
 
164
 
 
165
    Returns:
 
166
      A binary string representation of the message if all of the required
 
167
      fields in the message are set (i.e. the message is initialized).
 
168
 
 
169
    Raises:
 
170
      message.EncodeError if the message isn't initialized.
 
171
    """
 
172
    raise NotImplementedError
 
173
 
 
174
  def SerializePartialToString(self):
 
175
    """Serializes the protocol message to a binary string.
 
176
 
 
177
    This method is similar to SerializeToString but doesn't check if the
 
178
    message is initialized.
 
179
 
 
180
    Returns:
 
181
      A string representation of the partial message.
 
182
    """
121
183
    raise NotImplementedError
122
184
 
123
185
  # TODO(robinson): Decide whether we like these better
136
198
  # Typically (in python), an underscore is appended to names that are
137
199
  # keywords. So they would become lambda_ or yield_.
138
200
  # """
139
 
  def ListFields(self, field_name):
 
201
  def ListFields(self):
140
202
    """Returns a list of (FieldDescriptor, value) tuples for all
141
203
    fields in the message which are not empty.  A singular field is non-empty
142
204
    if HasField() would return true, and a repeated field is non-empty if