blob: dfeb69ff69789dd063a4eb1d84bf44a30b1e91e7 [file] [log] [blame]
avm9996399bb77c2020-01-27 03:15:08 +01001<?php
2# Generated by the protocol buffer compiler. DO NOT EDIT!
3# source: google/protobuf/descriptor.proto
4
5namespace Google\Protobuf\Internal;
6
7use Google\Protobuf\Internal\GPBType;
8use Google\Protobuf\Internal\GPBWire;
9use Google\Protobuf\Internal\RepeatedField;
10use Google\Protobuf\Internal\InputStream;
11use Google\Protobuf\Internal\GPBUtil;
12
13/**
14 * Encapsulates information about the original source file from which a
15 * FileDescriptorProto was generated.
16 *
17 * Generated from protobuf message <code>google.protobuf.SourceCodeInfo</code>
18 */
19class SourceCodeInfo extends \Google\Protobuf\Internal\Message
20{
21 /**
22 * A Location identifies a piece of source code in a .proto file which
23 * corresponds to a particular definition. This information is intended
24 * to be useful to IDEs, code indexers, documentation generators, and similar
25 * tools.
26 * For example, say we have a file like:
27 * message Foo {
28 * optional string foo = 1;
29 * }
30 * Let's look at just the field definition:
31 * optional string foo = 1;
32 * ^ ^^ ^^ ^ ^^^
33 * a bc de f ghi
34 * We have the following locations:
35 * span path represents
36 * [a,i) [ 4, 0, 2, 0 ] The whole field definition.
37 * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
38 * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
39 * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
40 * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
41 * Notes:
42 * - A location may refer to a repeated field itself (i.e. not to any
43 * particular index within it). This is used whenever a set of elements are
44 * logically enclosed in a single code segment. For example, an entire
45 * extend block (possibly containing multiple extension definitions) will
46 * have an outer location whose path refers to the "extensions" repeated
47 * field without an index.
48 * - Multiple locations may have the same path. This happens when a single
49 * logical declaration is spread out across multiple places. The most
50 * obvious example is the "extend" block again -- there may be multiple
51 * extend blocks in the same scope, each of which will have the same path.
52 * - A location's span is not always a subset of its parent's span. For
53 * example, the "extendee" of an extension declaration appears at the
54 * beginning of the "extend" block and is shared by all extensions within
55 * the block.
56 * - Just because a location's span is a subset of some other location's span
57 * does not mean that it is a descendant. For example, a "group" defines
58 * both a type and a field in a single declaration. Thus, the locations
59 * corresponding to the type and field and their components will overlap.
60 * - Code which tries to interpret locations should probably be designed to
61 * ignore those that it doesn't understand, as more types of locations could
62 * be recorded in the future.
63 *
64 * Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
65 */
66 private $location;
67 private $has_location = false;
68
69 /**
70 * Constructor.
71 *
72 * @param array $data {
73 * Optional. Data for populating the Message object.
74 *
75 * @type \Google\Protobuf\Internal\SourceCodeInfo\Location[]|\Google\Protobuf\Internal\RepeatedField $location
76 * A Location identifies a piece of source code in a .proto file which
77 * corresponds to a particular definition. This information is intended
78 * to be useful to IDEs, code indexers, documentation generators, and similar
79 * tools.
80 * For example, say we have a file like:
81 * message Foo {
82 * optional string foo = 1;
83 * }
84 * Let's look at just the field definition:
85 * optional string foo = 1;
86 * ^ ^^ ^^ ^ ^^^
87 * a bc de f ghi
88 * We have the following locations:
89 * span path represents
90 * [a,i) [ 4, 0, 2, 0 ] The whole field definition.
91 * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
92 * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
93 * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
94 * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
95 * Notes:
96 * - A location may refer to a repeated field itself (i.e. not to any
97 * particular index within it). This is used whenever a set of elements are
98 * logically enclosed in a single code segment. For example, an entire
99 * extend block (possibly containing multiple extension definitions) will
100 * have an outer location whose path refers to the "extensions" repeated
101 * field without an index.
102 * - Multiple locations may have the same path. This happens when a single
103 * logical declaration is spread out across multiple places. The most
104 * obvious example is the "extend" block again -- there may be multiple
105 * extend blocks in the same scope, each of which will have the same path.
106 * - A location's span is not always a subset of its parent's span. For
107 * example, the "extendee" of an extension declaration appears at the
108 * beginning of the "extend" block and is shared by all extensions within
109 * the block.
110 * - Just because a location's span is a subset of some other location's span
111 * does not mean that it is a descendant. For example, a "group" defines
112 * both a type and a field in a single declaration. Thus, the locations
113 * corresponding to the type and field and their components will overlap.
114 * - Code which tries to interpret locations should probably be designed to
115 * ignore those that it doesn't understand, as more types of locations could
116 * be recorded in the future.
117 * }
118 */
119 public function __construct($data = NULL) {
120 \GPBMetadata\Google\Protobuf\Internal\Descriptor::initOnce();
121 parent::__construct($data);
122 }
123
124 /**
125 * A Location identifies a piece of source code in a .proto file which
126 * corresponds to a particular definition. This information is intended
127 * to be useful to IDEs, code indexers, documentation generators, and similar
128 * tools.
129 * For example, say we have a file like:
130 * message Foo {
131 * optional string foo = 1;
132 * }
133 * Let's look at just the field definition:
134 * optional string foo = 1;
135 * ^ ^^ ^^ ^ ^^^
136 * a bc de f ghi
137 * We have the following locations:
138 * span path represents
139 * [a,i) [ 4, 0, 2, 0 ] The whole field definition.
140 * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
141 * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
142 * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
143 * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
144 * Notes:
145 * - A location may refer to a repeated field itself (i.e. not to any
146 * particular index within it). This is used whenever a set of elements are
147 * logically enclosed in a single code segment. For example, an entire
148 * extend block (possibly containing multiple extension definitions) will
149 * have an outer location whose path refers to the "extensions" repeated
150 * field without an index.
151 * - Multiple locations may have the same path. This happens when a single
152 * logical declaration is spread out across multiple places. The most
153 * obvious example is the "extend" block again -- there may be multiple
154 * extend blocks in the same scope, each of which will have the same path.
155 * - A location's span is not always a subset of its parent's span. For
156 * example, the "extendee" of an extension declaration appears at the
157 * beginning of the "extend" block and is shared by all extensions within
158 * the block.
159 * - Just because a location's span is a subset of some other location's span
160 * does not mean that it is a descendant. For example, a "group" defines
161 * both a type and a field in a single declaration. Thus, the locations
162 * corresponding to the type and field and their components will overlap.
163 * - Code which tries to interpret locations should probably be designed to
164 * ignore those that it doesn't understand, as more types of locations could
165 * be recorded in the future.
166 *
167 * Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
168 * @return \Google\Protobuf\Internal\RepeatedField
169 */
170 public function getLocation()
171 {
172 return $this->location;
173 }
174
175 /**
176 * A Location identifies a piece of source code in a .proto file which
177 * corresponds to a particular definition. This information is intended
178 * to be useful to IDEs, code indexers, documentation generators, and similar
179 * tools.
180 * For example, say we have a file like:
181 * message Foo {
182 * optional string foo = 1;
183 * }
184 * Let's look at just the field definition:
185 * optional string foo = 1;
186 * ^ ^^ ^^ ^ ^^^
187 * a bc de f ghi
188 * We have the following locations:
189 * span path represents
190 * [a,i) [ 4, 0, 2, 0 ] The whole field definition.
191 * [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
192 * [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
193 * [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
194 * [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
195 * Notes:
196 * - A location may refer to a repeated field itself (i.e. not to any
197 * particular index within it). This is used whenever a set of elements are
198 * logically enclosed in a single code segment. For example, an entire
199 * extend block (possibly containing multiple extension definitions) will
200 * have an outer location whose path refers to the "extensions" repeated
201 * field without an index.
202 * - Multiple locations may have the same path. This happens when a single
203 * logical declaration is spread out across multiple places. The most
204 * obvious example is the "extend" block again -- there may be multiple
205 * extend blocks in the same scope, each of which will have the same path.
206 * - A location's span is not always a subset of its parent's span. For
207 * example, the "extendee" of an extension declaration appears at the
208 * beginning of the "extend" block and is shared by all extensions within
209 * the block.
210 * - Just because a location's span is a subset of some other location's span
211 * does not mean that it is a descendant. For example, a "group" defines
212 * both a type and a field in a single declaration. Thus, the locations
213 * corresponding to the type and field and their components will overlap.
214 * - Code which tries to interpret locations should probably be designed to
215 * ignore those that it doesn't understand, as more types of locations could
216 * be recorded in the future.
217 *
218 * Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
219 * @param \Google\Protobuf\Internal\SourceCodeInfo\Location[]|\Google\Protobuf\Internal\RepeatedField $var
220 * @return $this
221 */
222 public function setLocation($var)
223 {
224 $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\SourceCodeInfo\Location::class);
225 $this->location = $arr;
226 $this->has_location = true;
227
228 return $this;
229 }
230
231 public function hasLocation()
232 {
233 return $this->has_location;
234 }
235
236}
237