1ffe3c632Sopenharmony_ci<?php
2ffe3c632Sopenharmony_ci# Generated by the protocol buffer compiler.  DO NOT EDIT!
3ffe3c632Sopenharmony_ci# source: google/protobuf/descriptor.proto
4ffe3c632Sopenharmony_ci
5ffe3c632Sopenharmony_cinamespace Google\Protobuf\Internal\SourceCodeInfo;
6ffe3c632Sopenharmony_ci
7ffe3c632Sopenharmony_ciuse Google\Protobuf\Internal\GPBType;
8ffe3c632Sopenharmony_ciuse Google\Protobuf\Internal\GPBWire;
9ffe3c632Sopenharmony_ciuse Google\Protobuf\Internal\RepeatedField;
10ffe3c632Sopenharmony_ciuse Google\Protobuf\Internal\InputStream;
11ffe3c632Sopenharmony_ciuse Google\Protobuf\Internal\GPBUtil;
12ffe3c632Sopenharmony_ci
13ffe3c632Sopenharmony_ci/**
14ffe3c632Sopenharmony_ci * Generated from protobuf message <code>google.protobuf.SourceCodeInfo.Location</code>
15ffe3c632Sopenharmony_ci */
16ffe3c632Sopenharmony_ciclass Location extends \Google\Protobuf\Internal\Message
17ffe3c632Sopenharmony_ci{
18ffe3c632Sopenharmony_ci    /**
19ffe3c632Sopenharmony_ci     * Identifies which part of the FileDescriptorProto was defined at this
20ffe3c632Sopenharmony_ci     * location.
21ffe3c632Sopenharmony_ci     * Each element is a field number or an index.  They form a path from
22ffe3c632Sopenharmony_ci     * the root FileDescriptorProto to the place where the definition.  For
23ffe3c632Sopenharmony_ci     * example, this path:
24ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7, 1 ]
25ffe3c632Sopenharmony_ci     * refers to:
26ffe3c632Sopenharmony_ci     *   file.message_type(3)  // 4, 3
27ffe3c632Sopenharmony_ci     *       .field(7)         // 2, 7
28ffe3c632Sopenharmony_ci     *       .name()           // 1
29ffe3c632Sopenharmony_ci     * This is because FileDescriptorProto.message_type has field number 4:
30ffe3c632Sopenharmony_ci     *   repeated DescriptorProto message_type = 4;
31ffe3c632Sopenharmony_ci     * and DescriptorProto.field has field number 2:
32ffe3c632Sopenharmony_ci     *   repeated FieldDescriptorProto field = 2;
33ffe3c632Sopenharmony_ci     * and FieldDescriptorProto.name has field number 1:
34ffe3c632Sopenharmony_ci     *   optional string name = 1;
35ffe3c632Sopenharmony_ci     * Thus, the above path gives the location of a field name.  If we removed
36ffe3c632Sopenharmony_ci     * the last element:
37ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7 ]
38ffe3c632Sopenharmony_ci     * this path refers to the whole field declaration (from the beginning
39ffe3c632Sopenharmony_ci     * of the label to the terminating semicolon).
40ffe3c632Sopenharmony_ci     *
41ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
42ffe3c632Sopenharmony_ci     */
43ffe3c632Sopenharmony_ci    private $path;
44ffe3c632Sopenharmony_ci    /**
45ffe3c632Sopenharmony_ci     * Always has exactly three or four elements: start line, start column,
46ffe3c632Sopenharmony_ci     * end line (optional, otherwise assumed same as start line), end column.
47ffe3c632Sopenharmony_ci     * These are packed into a single field for efficiency.  Note that line
48ffe3c632Sopenharmony_ci     * and column numbers are zero-based -- typically you will want to add
49ffe3c632Sopenharmony_ci     * 1 to each before displaying to a user.
50ffe3c632Sopenharmony_ci     *
51ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
52ffe3c632Sopenharmony_ci     */
53ffe3c632Sopenharmony_ci    private $span;
54ffe3c632Sopenharmony_ci    /**
55ffe3c632Sopenharmony_ci     * If this SourceCodeInfo represents a complete declaration, these are any
56ffe3c632Sopenharmony_ci     * comments appearing before and after the declaration which appear to be
57ffe3c632Sopenharmony_ci     * attached to the declaration.
58ffe3c632Sopenharmony_ci     * A series of line comments appearing on consecutive lines, with no other
59ffe3c632Sopenharmony_ci     * tokens appearing on those lines, will be treated as a single comment.
60ffe3c632Sopenharmony_ci     * leading_detached_comments will keep paragraphs of comments that appear
61ffe3c632Sopenharmony_ci     * before (but not connected to) the current element. Each paragraph,
62ffe3c632Sopenharmony_ci     * separated by empty lines, will be one comment element in the repeated
63ffe3c632Sopenharmony_ci     * field.
64ffe3c632Sopenharmony_ci     * Only the comment content is provided; comment markers (e.g. //) are
65ffe3c632Sopenharmony_ci     * stripped out.  For block comments, leading whitespace and an asterisk
66ffe3c632Sopenharmony_ci     * will be stripped from the beginning of each line other than the first.
67ffe3c632Sopenharmony_ci     * Newlines are included in the output.
68ffe3c632Sopenharmony_ci     * Examples:
69ffe3c632Sopenharmony_ci     *   optional int32 foo = 1;  // Comment attached to foo.
70ffe3c632Sopenharmony_ci     *   // Comment attached to bar.
71ffe3c632Sopenharmony_ci     *   optional int32 bar = 2;
72ffe3c632Sopenharmony_ci     *   optional string baz = 3;
73ffe3c632Sopenharmony_ci     *   // Comment attached to baz.
74ffe3c632Sopenharmony_ci     *   // Another line attached to baz.
75ffe3c632Sopenharmony_ci     *   // Comment attached to qux.
76ffe3c632Sopenharmony_ci     *   //
77ffe3c632Sopenharmony_ci     *   // Another line attached to qux.
78ffe3c632Sopenharmony_ci     *   optional double qux = 4;
79ffe3c632Sopenharmony_ci     *   // Detached comment for corge. This is not leading or trailing comments
80ffe3c632Sopenharmony_ci     *   // to qux or corge because there are blank lines separating it from
81ffe3c632Sopenharmony_ci     *   // both.
82ffe3c632Sopenharmony_ci     *   // Detached comment for corge paragraph 2.
83ffe3c632Sopenharmony_ci     *   optional string corge = 5;
84ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached
85ffe3c632Sopenharmony_ci     *    * to corge.  Leading asterisks
86ffe3c632Sopenharmony_ci     *    * will be removed. *&#47;
87ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached to
88ffe3c632Sopenharmony_ci     *    * grault. *&#47;
89ffe3c632Sopenharmony_ci     *   optional int32 grault = 6;
90ffe3c632Sopenharmony_ci     *   // ignored detached comments.
91ffe3c632Sopenharmony_ci     *
92ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string leading_comments = 3;</code>
93ffe3c632Sopenharmony_ci     */
94ffe3c632Sopenharmony_ci    protected $leading_comments = null;
95ffe3c632Sopenharmony_ci    /**
96ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string trailing_comments = 4;</code>
97ffe3c632Sopenharmony_ci     */
98ffe3c632Sopenharmony_ci    protected $trailing_comments = null;
99ffe3c632Sopenharmony_ci    /**
100ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
101ffe3c632Sopenharmony_ci     */
102ffe3c632Sopenharmony_ci    private $leading_detached_comments;
103ffe3c632Sopenharmony_ci
104ffe3c632Sopenharmony_ci    /**
105ffe3c632Sopenharmony_ci     * Constructor.
106ffe3c632Sopenharmony_ci     *
107ffe3c632Sopenharmony_ci     * @param array $data {
108ffe3c632Sopenharmony_ci     *     Optional. Data for populating the Message object.
109ffe3c632Sopenharmony_ci     *
110ffe3c632Sopenharmony_ci     *     @type int[]|\Google\Protobuf\Internal\RepeatedField $path
111ffe3c632Sopenharmony_ci     *           Identifies which part of the FileDescriptorProto was defined at this
112ffe3c632Sopenharmony_ci     *           location.
113ffe3c632Sopenharmony_ci     *           Each element is a field number or an index.  They form a path from
114ffe3c632Sopenharmony_ci     *           the root FileDescriptorProto to the place where the definition.  For
115ffe3c632Sopenharmony_ci     *           example, this path:
116ffe3c632Sopenharmony_ci     *             [ 4, 3, 2, 7, 1 ]
117ffe3c632Sopenharmony_ci     *           refers to:
118ffe3c632Sopenharmony_ci     *             file.message_type(3)  // 4, 3
119ffe3c632Sopenharmony_ci     *                 .field(7)         // 2, 7
120ffe3c632Sopenharmony_ci     *                 .name()           // 1
121ffe3c632Sopenharmony_ci     *           This is because FileDescriptorProto.message_type has field number 4:
122ffe3c632Sopenharmony_ci     *             repeated DescriptorProto message_type = 4;
123ffe3c632Sopenharmony_ci     *           and DescriptorProto.field has field number 2:
124ffe3c632Sopenharmony_ci     *             repeated FieldDescriptorProto field = 2;
125ffe3c632Sopenharmony_ci     *           and FieldDescriptorProto.name has field number 1:
126ffe3c632Sopenharmony_ci     *             optional string name = 1;
127ffe3c632Sopenharmony_ci     *           Thus, the above path gives the location of a field name.  If we removed
128ffe3c632Sopenharmony_ci     *           the last element:
129ffe3c632Sopenharmony_ci     *             [ 4, 3, 2, 7 ]
130ffe3c632Sopenharmony_ci     *           this path refers to the whole field declaration (from the beginning
131ffe3c632Sopenharmony_ci     *           of the label to the terminating semicolon).
132ffe3c632Sopenharmony_ci     *     @type int[]|\Google\Protobuf\Internal\RepeatedField $span
133ffe3c632Sopenharmony_ci     *           Always has exactly three or four elements: start line, start column,
134ffe3c632Sopenharmony_ci     *           end line (optional, otherwise assumed same as start line), end column.
135ffe3c632Sopenharmony_ci     *           These are packed into a single field for efficiency.  Note that line
136ffe3c632Sopenharmony_ci     *           and column numbers are zero-based -- typically you will want to add
137ffe3c632Sopenharmony_ci     *           1 to each before displaying to a user.
138ffe3c632Sopenharmony_ci     *     @type string $leading_comments
139ffe3c632Sopenharmony_ci     *           If this SourceCodeInfo represents a complete declaration, these are any
140ffe3c632Sopenharmony_ci     *           comments appearing before and after the declaration which appear to be
141ffe3c632Sopenharmony_ci     *           attached to the declaration.
142ffe3c632Sopenharmony_ci     *           A series of line comments appearing on consecutive lines, with no other
143ffe3c632Sopenharmony_ci     *           tokens appearing on those lines, will be treated as a single comment.
144ffe3c632Sopenharmony_ci     *           leading_detached_comments will keep paragraphs of comments that appear
145ffe3c632Sopenharmony_ci     *           before (but not connected to) the current element. Each paragraph,
146ffe3c632Sopenharmony_ci     *           separated by empty lines, will be one comment element in the repeated
147ffe3c632Sopenharmony_ci     *           field.
148ffe3c632Sopenharmony_ci     *           Only the comment content is provided; comment markers (e.g. //) are
149ffe3c632Sopenharmony_ci     *           stripped out.  For block comments, leading whitespace and an asterisk
150ffe3c632Sopenharmony_ci     *           will be stripped from the beginning of each line other than the first.
151ffe3c632Sopenharmony_ci     *           Newlines are included in the output.
152ffe3c632Sopenharmony_ci     *           Examples:
153ffe3c632Sopenharmony_ci     *             optional int32 foo = 1;  // Comment attached to foo.
154ffe3c632Sopenharmony_ci     *             // Comment attached to bar.
155ffe3c632Sopenharmony_ci     *             optional int32 bar = 2;
156ffe3c632Sopenharmony_ci     *             optional string baz = 3;
157ffe3c632Sopenharmony_ci     *             // Comment attached to baz.
158ffe3c632Sopenharmony_ci     *             // Another line attached to baz.
159ffe3c632Sopenharmony_ci     *             // Comment attached to qux.
160ffe3c632Sopenharmony_ci     *             //
161ffe3c632Sopenharmony_ci     *             // Another line attached to qux.
162ffe3c632Sopenharmony_ci     *             optional double qux = 4;
163ffe3c632Sopenharmony_ci     *             // Detached comment for corge. This is not leading or trailing comments
164ffe3c632Sopenharmony_ci     *             // to qux or corge because there are blank lines separating it from
165ffe3c632Sopenharmony_ci     *             // both.
166ffe3c632Sopenharmony_ci     *             // Detached comment for corge paragraph 2.
167ffe3c632Sopenharmony_ci     *             optional string corge = 5;
168ffe3c632Sopenharmony_ci     *             /&#42; Block comment attached
169ffe3c632Sopenharmony_ci     *              * to corge.  Leading asterisks
170ffe3c632Sopenharmony_ci     *              * will be removed. *&#47;
171ffe3c632Sopenharmony_ci     *             /&#42; Block comment attached to
172ffe3c632Sopenharmony_ci     *              * grault. *&#47;
173ffe3c632Sopenharmony_ci     *             optional int32 grault = 6;
174ffe3c632Sopenharmony_ci     *             // ignored detached comments.
175ffe3c632Sopenharmony_ci     *     @type string $trailing_comments
176ffe3c632Sopenharmony_ci     *     @type string[]|\Google\Protobuf\Internal\RepeatedField $leading_detached_comments
177ffe3c632Sopenharmony_ci     * }
178ffe3c632Sopenharmony_ci     */
179ffe3c632Sopenharmony_ci    public function __construct($data = NULL) {
180ffe3c632Sopenharmony_ci        \GPBMetadata\Google\Protobuf\Internal\Descriptor::initOnce();
181ffe3c632Sopenharmony_ci        parent::__construct($data);
182ffe3c632Sopenharmony_ci    }
183ffe3c632Sopenharmony_ci
184ffe3c632Sopenharmony_ci    /**
185ffe3c632Sopenharmony_ci     * Identifies which part of the FileDescriptorProto was defined at this
186ffe3c632Sopenharmony_ci     * location.
187ffe3c632Sopenharmony_ci     * Each element is a field number or an index.  They form a path from
188ffe3c632Sopenharmony_ci     * the root FileDescriptorProto to the place where the definition.  For
189ffe3c632Sopenharmony_ci     * example, this path:
190ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7, 1 ]
191ffe3c632Sopenharmony_ci     * refers to:
192ffe3c632Sopenharmony_ci     *   file.message_type(3)  // 4, 3
193ffe3c632Sopenharmony_ci     *       .field(7)         // 2, 7
194ffe3c632Sopenharmony_ci     *       .name()           // 1
195ffe3c632Sopenharmony_ci     * This is because FileDescriptorProto.message_type has field number 4:
196ffe3c632Sopenharmony_ci     *   repeated DescriptorProto message_type = 4;
197ffe3c632Sopenharmony_ci     * and DescriptorProto.field has field number 2:
198ffe3c632Sopenharmony_ci     *   repeated FieldDescriptorProto field = 2;
199ffe3c632Sopenharmony_ci     * and FieldDescriptorProto.name has field number 1:
200ffe3c632Sopenharmony_ci     *   optional string name = 1;
201ffe3c632Sopenharmony_ci     * Thus, the above path gives the location of a field name.  If we removed
202ffe3c632Sopenharmony_ci     * the last element:
203ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7 ]
204ffe3c632Sopenharmony_ci     * this path refers to the whole field declaration (from the beginning
205ffe3c632Sopenharmony_ci     * of the label to the terminating semicolon).
206ffe3c632Sopenharmony_ci     *
207ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
208ffe3c632Sopenharmony_ci     * @return \Google\Protobuf\Internal\RepeatedField
209ffe3c632Sopenharmony_ci     */
210ffe3c632Sopenharmony_ci    public function getPath()
211ffe3c632Sopenharmony_ci    {
212ffe3c632Sopenharmony_ci        return $this->path;
213ffe3c632Sopenharmony_ci    }
214ffe3c632Sopenharmony_ci
215ffe3c632Sopenharmony_ci    /**
216ffe3c632Sopenharmony_ci     * Identifies which part of the FileDescriptorProto was defined at this
217ffe3c632Sopenharmony_ci     * location.
218ffe3c632Sopenharmony_ci     * Each element is a field number or an index.  They form a path from
219ffe3c632Sopenharmony_ci     * the root FileDescriptorProto to the place where the definition.  For
220ffe3c632Sopenharmony_ci     * example, this path:
221ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7, 1 ]
222ffe3c632Sopenharmony_ci     * refers to:
223ffe3c632Sopenharmony_ci     *   file.message_type(3)  // 4, 3
224ffe3c632Sopenharmony_ci     *       .field(7)         // 2, 7
225ffe3c632Sopenharmony_ci     *       .name()           // 1
226ffe3c632Sopenharmony_ci     * This is because FileDescriptorProto.message_type has field number 4:
227ffe3c632Sopenharmony_ci     *   repeated DescriptorProto message_type = 4;
228ffe3c632Sopenharmony_ci     * and DescriptorProto.field has field number 2:
229ffe3c632Sopenharmony_ci     *   repeated FieldDescriptorProto field = 2;
230ffe3c632Sopenharmony_ci     * and FieldDescriptorProto.name has field number 1:
231ffe3c632Sopenharmony_ci     *   optional string name = 1;
232ffe3c632Sopenharmony_ci     * Thus, the above path gives the location of a field name.  If we removed
233ffe3c632Sopenharmony_ci     * the last element:
234ffe3c632Sopenharmony_ci     *   [ 4, 3, 2, 7 ]
235ffe3c632Sopenharmony_ci     * this path refers to the whole field declaration (from the beginning
236ffe3c632Sopenharmony_ci     * of the label to the terminating semicolon).
237ffe3c632Sopenharmony_ci     *
238ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
239ffe3c632Sopenharmony_ci     * @param int[]|\Google\Protobuf\Internal\RepeatedField $var
240ffe3c632Sopenharmony_ci     * @return $this
241ffe3c632Sopenharmony_ci     */
242ffe3c632Sopenharmony_ci    public function setPath($var)
243ffe3c632Sopenharmony_ci    {
244ffe3c632Sopenharmony_ci        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
245ffe3c632Sopenharmony_ci        $this->path = $arr;
246ffe3c632Sopenharmony_ci
247ffe3c632Sopenharmony_ci        return $this;
248ffe3c632Sopenharmony_ci    }
249ffe3c632Sopenharmony_ci
250ffe3c632Sopenharmony_ci    /**
251ffe3c632Sopenharmony_ci     * Always has exactly three or four elements: start line, start column,
252ffe3c632Sopenharmony_ci     * end line (optional, otherwise assumed same as start line), end column.
253ffe3c632Sopenharmony_ci     * These are packed into a single field for efficiency.  Note that line
254ffe3c632Sopenharmony_ci     * and column numbers are zero-based -- typically you will want to add
255ffe3c632Sopenharmony_ci     * 1 to each before displaying to a user.
256ffe3c632Sopenharmony_ci     *
257ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
258ffe3c632Sopenharmony_ci     * @return \Google\Protobuf\Internal\RepeatedField
259ffe3c632Sopenharmony_ci     */
260ffe3c632Sopenharmony_ci    public function getSpan()
261ffe3c632Sopenharmony_ci    {
262ffe3c632Sopenharmony_ci        return $this->span;
263ffe3c632Sopenharmony_ci    }
264ffe3c632Sopenharmony_ci
265ffe3c632Sopenharmony_ci    /**
266ffe3c632Sopenharmony_ci     * Always has exactly three or four elements: start line, start column,
267ffe3c632Sopenharmony_ci     * end line (optional, otherwise assumed same as start line), end column.
268ffe3c632Sopenharmony_ci     * These are packed into a single field for efficiency.  Note that line
269ffe3c632Sopenharmony_ci     * and column numbers are zero-based -- typically you will want to add
270ffe3c632Sopenharmony_ci     * 1 to each before displaying to a user.
271ffe3c632Sopenharmony_ci     *
272ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
273ffe3c632Sopenharmony_ci     * @param int[]|\Google\Protobuf\Internal\RepeatedField $var
274ffe3c632Sopenharmony_ci     * @return $this
275ffe3c632Sopenharmony_ci     */
276ffe3c632Sopenharmony_ci    public function setSpan($var)
277ffe3c632Sopenharmony_ci    {
278ffe3c632Sopenharmony_ci        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
279ffe3c632Sopenharmony_ci        $this->span = $arr;
280ffe3c632Sopenharmony_ci
281ffe3c632Sopenharmony_ci        return $this;
282ffe3c632Sopenharmony_ci    }
283ffe3c632Sopenharmony_ci
284ffe3c632Sopenharmony_ci    /**
285ffe3c632Sopenharmony_ci     * If this SourceCodeInfo represents a complete declaration, these are any
286ffe3c632Sopenharmony_ci     * comments appearing before and after the declaration which appear to be
287ffe3c632Sopenharmony_ci     * attached to the declaration.
288ffe3c632Sopenharmony_ci     * A series of line comments appearing on consecutive lines, with no other
289ffe3c632Sopenharmony_ci     * tokens appearing on those lines, will be treated as a single comment.
290ffe3c632Sopenharmony_ci     * leading_detached_comments will keep paragraphs of comments that appear
291ffe3c632Sopenharmony_ci     * before (but not connected to) the current element. Each paragraph,
292ffe3c632Sopenharmony_ci     * separated by empty lines, will be one comment element in the repeated
293ffe3c632Sopenharmony_ci     * field.
294ffe3c632Sopenharmony_ci     * Only the comment content is provided; comment markers (e.g. //) are
295ffe3c632Sopenharmony_ci     * stripped out.  For block comments, leading whitespace and an asterisk
296ffe3c632Sopenharmony_ci     * will be stripped from the beginning of each line other than the first.
297ffe3c632Sopenharmony_ci     * Newlines are included in the output.
298ffe3c632Sopenharmony_ci     * Examples:
299ffe3c632Sopenharmony_ci     *   optional int32 foo = 1;  // Comment attached to foo.
300ffe3c632Sopenharmony_ci     *   // Comment attached to bar.
301ffe3c632Sopenharmony_ci     *   optional int32 bar = 2;
302ffe3c632Sopenharmony_ci     *   optional string baz = 3;
303ffe3c632Sopenharmony_ci     *   // Comment attached to baz.
304ffe3c632Sopenharmony_ci     *   // Another line attached to baz.
305ffe3c632Sopenharmony_ci     *   // Comment attached to qux.
306ffe3c632Sopenharmony_ci     *   //
307ffe3c632Sopenharmony_ci     *   // Another line attached to qux.
308ffe3c632Sopenharmony_ci     *   optional double qux = 4;
309ffe3c632Sopenharmony_ci     *   // Detached comment for corge. This is not leading or trailing comments
310ffe3c632Sopenharmony_ci     *   // to qux or corge because there are blank lines separating it from
311ffe3c632Sopenharmony_ci     *   // both.
312ffe3c632Sopenharmony_ci     *   // Detached comment for corge paragraph 2.
313ffe3c632Sopenharmony_ci     *   optional string corge = 5;
314ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached
315ffe3c632Sopenharmony_ci     *    * to corge.  Leading asterisks
316ffe3c632Sopenharmony_ci     *    * will be removed. *&#47;
317ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached to
318ffe3c632Sopenharmony_ci     *    * grault. *&#47;
319ffe3c632Sopenharmony_ci     *   optional int32 grault = 6;
320ffe3c632Sopenharmony_ci     *   // ignored detached comments.
321ffe3c632Sopenharmony_ci     *
322ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string leading_comments = 3;</code>
323ffe3c632Sopenharmony_ci     * @return string
324ffe3c632Sopenharmony_ci     */
325ffe3c632Sopenharmony_ci    public function getLeadingComments()
326ffe3c632Sopenharmony_ci    {
327ffe3c632Sopenharmony_ci        return isset($this->leading_comments) ? $this->leading_comments : '';
328ffe3c632Sopenharmony_ci    }
329ffe3c632Sopenharmony_ci
330ffe3c632Sopenharmony_ci    public function hasLeadingComments()
331ffe3c632Sopenharmony_ci    {
332ffe3c632Sopenharmony_ci        return isset($this->leading_comments);
333ffe3c632Sopenharmony_ci    }
334ffe3c632Sopenharmony_ci
335ffe3c632Sopenharmony_ci    public function clearLeadingComments()
336ffe3c632Sopenharmony_ci    {
337ffe3c632Sopenharmony_ci        unset($this->leading_comments);
338ffe3c632Sopenharmony_ci    }
339ffe3c632Sopenharmony_ci
340ffe3c632Sopenharmony_ci    /**
341ffe3c632Sopenharmony_ci     * If this SourceCodeInfo represents a complete declaration, these are any
342ffe3c632Sopenharmony_ci     * comments appearing before and after the declaration which appear to be
343ffe3c632Sopenharmony_ci     * attached to the declaration.
344ffe3c632Sopenharmony_ci     * A series of line comments appearing on consecutive lines, with no other
345ffe3c632Sopenharmony_ci     * tokens appearing on those lines, will be treated as a single comment.
346ffe3c632Sopenharmony_ci     * leading_detached_comments will keep paragraphs of comments that appear
347ffe3c632Sopenharmony_ci     * before (but not connected to) the current element. Each paragraph,
348ffe3c632Sopenharmony_ci     * separated by empty lines, will be one comment element in the repeated
349ffe3c632Sopenharmony_ci     * field.
350ffe3c632Sopenharmony_ci     * Only the comment content is provided; comment markers (e.g. //) are
351ffe3c632Sopenharmony_ci     * stripped out.  For block comments, leading whitespace and an asterisk
352ffe3c632Sopenharmony_ci     * will be stripped from the beginning of each line other than the first.
353ffe3c632Sopenharmony_ci     * Newlines are included in the output.
354ffe3c632Sopenharmony_ci     * Examples:
355ffe3c632Sopenharmony_ci     *   optional int32 foo = 1;  // Comment attached to foo.
356ffe3c632Sopenharmony_ci     *   // Comment attached to bar.
357ffe3c632Sopenharmony_ci     *   optional int32 bar = 2;
358ffe3c632Sopenharmony_ci     *   optional string baz = 3;
359ffe3c632Sopenharmony_ci     *   // Comment attached to baz.
360ffe3c632Sopenharmony_ci     *   // Another line attached to baz.
361ffe3c632Sopenharmony_ci     *   // Comment attached to qux.
362ffe3c632Sopenharmony_ci     *   //
363ffe3c632Sopenharmony_ci     *   // Another line attached to qux.
364ffe3c632Sopenharmony_ci     *   optional double qux = 4;
365ffe3c632Sopenharmony_ci     *   // Detached comment for corge. This is not leading or trailing comments
366ffe3c632Sopenharmony_ci     *   // to qux or corge because there are blank lines separating it from
367ffe3c632Sopenharmony_ci     *   // both.
368ffe3c632Sopenharmony_ci     *   // Detached comment for corge paragraph 2.
369ffe3c632Sopenharmony_ci     *   optional string corge = 5;
370ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached
371ffe3c632Sopenharmony_ci     *    * to corge.  Leading asterisks
372ffe3c632Sopenharmony_ci     *    * will be removed. *&#47;
373ffe3c632Sopenharmony_ci     *   /&#42; Block comment attached to
374ffe3c632Sopenharmony_ci     *    * grault. *&#47;
375ffe3c632Sopenharmony_ci     *   optional int32 grault = 6;
376ffe3c632Sopenharmony_ci     *   // ignored detached comments.
377ffe3c632Sopenharmony_ci     *
378ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string leading_comments = 3;</code>
379ffe3c632Sopenharmony_ci     * @param string $var
380ffe3c632Sopenharmony_ci     * @return $this
381ffe3c632Sopenharmony_ci     */
382ffe3c632Sopenharmony_ci    public function setLeadingComments($var)
383ffe3c632Sopenharmony_ci    {
384ffe3c632Sopenharmony_ci        GPBUtil::checkString($var, True);
385ffe3c632Sopenharmony_ci        $this->leading_comments = $var;
386ffe3c632Sopenharmony_ci
387ffe3c632Sopenharmony_ci        return $this;
388ffe3c632Sopenharmony_ci    }
389ffe3c632Sopenharmony_ci
390ffe3c632Sopenharmony_ci    /**
391ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string trailing_comments = 4;</code>
392ffe3c632Sopenharmony_ci     * @return string
393ffe3c632Sopenharmony_ci     */
394ffe3c632Sopenharmony_ci    public function getTrailingComments()
395ffe3c632Sopenharmony_ci    {
396ffe3c632Sopenharmony_ci        return isset($this->trailing_comments) ? $this->trailing_comments : '';
397ffe3c632Sopenharmony_ci    }
398ffe3c632Sopenharmony_ci
399ffe3c632Sopenharmony_ci    public function hasTrailingComments()
400ffe3c632Sopenharmony_ci    {
401ffe3c632Sopenharmony_ci        return isset($this->trailing_comments);
402ffe3c632Sopenharmony_ci    }
403ffe3c632Sopenharmony_ci
404ffe3c632Sopenharmony_ci    public function clearTrailingComments()
405ffe3c632Sopenharmony_ci    {
406ffe3c632Sopenharmony_ci        unset($this->trailing_comments);
407ffe3c632Sopenharmony_ci    }
408ffe3c632Sopenharmony_ci
409ffe3c632Sopenharmony_ci    /**
410ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>optional string trailing_comments = 4;</code>
411ffe3c632Sopenharmony_ci     * @param string $var
412ffe3c632Sopenharmony_ci     * @return $this
413ffe3c632Sopenharmony_ci     */
414ffe3c632Sopenharmony_ci    public function setTrailingComments($var)
415ffe3c632Sopenharmony_ci    {
416ffe3c632Sopenharmony_ci        GPBUtil::checkString($var, True);
417ffe3c632Sopenharmony_ci        $this->trailing_comments = $var;
418ffe3c632Sopenharmony_ci
419ffe3c632Sopenharmony_ci        return $this;
420ffe3c632Sopenharmony_ci    }
421ffe3c632Sopenharmony_ci
422ffe3c632Sopenharmony_ci    /**
423ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
424ffe3c632Sopenharmony_ci     * @return \Google\Protobuf\Internal\RepeatedField
425ffe3c632Sopenharmony_ci     */
426ffe3c632Sopenharmony_ci    public function getLeadingDetachedComments()
427ffe3c632Sopenharmony_ci    {
428ffe3c632Sopenharmony_ci        return $this->leading_detached_comments;
429ffe3c632Sopenharmony_ci    }
430ffe3c632Sopenharmony_ci
431ffe3c632Sopenharmony_ci    /**
432ffe3c632Sopenharmony_ci     * Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
433ffe3c632Sopenharmony_ci     * @param string[]|\Google\Protobuf\Internal\RepeatedField $var
434ffe3c632Sopenharmony_ci     * @return $this
435ffe3c632Sopenharmony_ci     */
436ffe3c632Sopenharmony_ci    public function setLeadingDetachedComments($var)
437ffe3c632Sopenharmony_ci    {
438ffe3c632Sopenharmony_ci        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
439ffe3c632Sopenharmony_ci        $this->leading_detached_comments = $arr;
440ffe3c632Sopenharmony_ci
441ffe3c632Sopenharmony_ci        return $this;
442ffe3c632Sopenharmony_ci    }
443ffe3c632Sopenharmony_ci
444ffe3c632Sopenharmony_ci}
445ffe3c632Sopenharmony_ci
446ffe3c632Sopenharmony_ci// Adding a class alias for backwards compatibility with the previous class name.
447ffe3c632Sopenharmony_ciclass_alias(Location::class, \Google\Protobuf\Internal\SourceCodeInfo_Location::class);
448ffe3c632Sopenharmony_ci
449