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