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