xref: /aosp_15_r20/external/protobuf/php/src/Google/Protobuf/Any.php (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker<?php
2*1b3f573fSAndroid Build Coastguard Worker# Generated by the protocol buffer compiler.  DO NOT EDIT!
3*1b3f573fSAndroid Build Coastguard Worker# source: google/protobuf/any.proto
4*1b3f573fSAndroid Build Coastguard Worker
5*1b3f573fSAndroid Build Coastguard Workernamespace Google\Protobuf;
6*1b3f573fSAndroid Build Coastguard Worker
7*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\GPBType;
8*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\RepeatedField;
9*1b3f573fSAndroid Build Coastguard Workeruse Google\Protobuf\Internal\GPBUtil;
10*1b3f573fSAndroid Build Coastguard Worker
11*1b3f573fSAndroid Build Coastguard Worker/**
12*1b3f573fSAndroid Build Coastguard Worker * `Any` contains an arbitrary serialized protocol buffer message along with a
13*1b3f573fSAndroid Build Coastguard Worker * URL that describes the type of the serialized message.
14*1b3f573fSAndroid Build Coastguard Worker * Protobuf library provides support to pack/unpack Any values in the form
15*1b3f573fSAndroid Build Coastguard Worker * of utility functions or additional generated methods of the Any type.
16*1b3f573fSAndroid Build Coastguard Worker * Example 1: Pack and unpack a message in C++.
17*1b3f573fSAndroid Build Coastguard Worker *     Foo foo = ...;
18*1b3f573fSAndroid Build Coastguard Worker *     Any any;
19*1b3f573fSAndroid Build Coastguard Worker *     any.PackFrom(foo);
20*1b3f573fSAndroid Build Coastguard Worker *     ...
21*1b3f573fSAndroid Build Coastguard Worker *     if (any.UnpackTo(&foo)) {
22*1b3f573fSAndroid Build Coastguard Worker *       ...
23*1b3f573fSAndroid Build Coastguard Worker *     }
24*1b3f573fSAndroid Build Coastguard Worker * Example 2: Pack and unpack a message in Java.
25*1b3f573fSAndroid Build Coastguard Worker *     Foo foo = ...;
26*1b3f573fSAndroid Build Coastguard Worker *     Any any = Any.pack(foo);
27*1b3f573fSAndroid Build Coastguard Worker *     ...
28*1b3f573fSAndroid Build Coastguard Worker *     if (any.is(Foo.class)) {
29*1b3f573fSAndroid Build Coastguard Worker *       foo = any.unpack(Foo.class);
30*1b3f573fSAndroid Build Coastguard Worker *     }
31*1b3f573fSAndroid Build Coastguard Worker * Example 3: Pack and unpack a message in Python.
32*1b3f573fSAndroid Build Coastguard Worker *     foo = Foo(...)
33*1b3f573fSAndroid Build Coastguard Worker *     any = Any()
34*1b3f573fSAndroid Build Coastguard Worker *     any.Pack(foo)
35*1b3f573fSAndroid Build Coastguard Worker *     ...
36*1b3f573fSAndroid Build Coastguard Worker *     if any.Is(Foo.DESCRIPTOR):
37*1b3f573fSAndroid Build Coastguard Worker *       any.Unpack(foo)
38*1b3f573fSAndroid Build Coastguard Worker *       ...
39*1b3f573fSAndroid Build Coastguard Worker * Example 4: Pack and unpack a message in Go
40*1b3f573fSAndroid Build Coastguard Worker *      foo := &pb.Foo{...}
41*1b3f573fSAndroid Build Coastguard Worker *      any, err := anypb.New(foo)
42*1b3f573fSAndroid Build Coastguard Worker *      if err != nil {
43*1b3f573fSAndroid Build Coastguard Worker *        ...
44*1b3f573fSAndroid Build Coastguard Worker *      }
45*1b3f573fSAndroid Build Coastguard Worker *      ...
46*1b3f573fSAndroid Build Coastguard Worker *      foo := &pb.Foo{}
47*1b3f573fSAndroid Build Coastguard Worker *      if err := any.UnmarshalTo(foo); err != nil {
48*1b3f573fSAndroid Build Coastguard Worker *        ...
49*1b3f573fSAndroid Build Coastguard Worker *      }
50*1b3f573fSAndroid Build Coastguard Worker * The pack methods provided by protobuf library will by default use
51*1b3f573fSAndroid Build Coastguard Worker * 'type.googleapis.com/full.type.name' as the type URL and the unpack
52*1b3f573fSAndroid Build Coastguard Worker * methods only use the fully qualified type name after the last '/'
53*1b3f573fSAndroid Build Coastguard Worker * in the type URL, for example "foo.bar.com/x/y.z" will yield type
54*1b3f573fSAndroid Build Coastguard Worker * name "y.z".
55*1b3f573fSAndroid Build Coastguard Worker * JSON
56*1b3f573fSAndroid Build Coastguard Worker * The JSON representation of an `Any` value uses the regular
57*1b3f573fSAndroid Build Coastguard Worker * representation of the deserialized, embedded message, with an
58*1b3f573fSAndroid Build Coastguard Worker * additional field `&#64;type` which contains the type URL. Example:
59*1b3f573fSAndroid Build Coastguard Worker *     package google.profile;
60*1b3f573fSAndroid Build Coastguard Worker *     message Person {
61*1b3f573fSAndroid Build Coastguard Worker *       string first_name = 1;
62*1b3f573fSAndroid Build Coastguard Worker *       string last_name = 2;
63*1b3f573fSAndroid Build Coastguard Worker *     }
64*1b3f573fSAndroid Build Coastguard Worker *     {
65*1b3f573fSAndroid Build Coastguard Worker *       "&#64;type": "type.googleapis.com/google.profile.Person",
66*1b3f573fSAndroid Build Coastguard Worker *       "firstName": <string>,
67*1b3f573fSAndroid Build Coastguard Worker *       "lastName": <string>
68*1b3f573fSAndroid Build Coastguard Worker *     }
69*1b3f573fSAndroid Build Coastguard Worker * If the embedded message type is well-known and has a custom JSON
70*1b3f573fSAndroid Build Coastguard Worker * representation, that representation will be embedded adding a field
71*1b3f573fSAndroid Build Coastguard Worker * `value` which holds the custom JSON in addition to the `&#64;type`
72*1b3f573fSAndroid Build Coastguard Worker * field. Example (for message [google.protobuf.Duration][]):
73*1b3f573fSAndroid Build Coastguard Worker *     {
74*1b3f573fSAndroid Build Coastguard Worker *       "&#64;type": "type.googleapis.com/google.protobuf.Duration",
75*1b3f573fSAndroid Build Coastguard Worker *       "value": "1.212s"
76*1b3f573fSAndroid Build Coastguard Worker *     }
77*1b3f573fSAndroid Build Coastguard Worker *
78*1b3f573fSAndroid Build Coastguard Worker * Generated from protobuf message <code>google.protobuf.Any</code>
79*1b3f573fSAndroid Build Coastguard Worker */
80*1b3f573fSAndroid Build Coastguard Workerclass Any extends \Google\Protobuf\Internal\AnyBase
81*1b3f573fSAndroid Build Coastguard Worker{
82*1b3f573fSAndroid Build Coastguard Worker    /**
83*1b3f573fSAndroid Build Coastguard Worker     * A URL/resource name that uniquely identifies the type of the serialized
84*1b3f573fSAndroid Build Coastguard Worker     * protocol buffer message. This string must contain at least
85*1b3f573fSAndroid Build Coastguard Worker     * one "/" character. The last segment of the URL's path must represent
86*1b3f573fSAndroid Build Coastguard Worker     * the fully qualified name of the type (as in
87*1b3f573fSAndroid Build Coastguard Worker     * `path/google.protobuf.Duration`). The name should be in a canonical form
88*1b3f573fSAndroid Build Coastguard Worker     * (e.g., leading "." is not accepted).
89*1b3f573fSAndroid Build Coastguard Worker     * In practice, teams usually precompile into the binary all types that they
90*1b3f573fSAndroid Build Coastguard Worker     * expect it to use in the context of Any. However, for URLs which use the
91*1b3f573fSAndroid Build Coastguard Worker     * scheme `http`, `https`, or no scheme, one can optionally set up a type
92*1b3f573fSAndroid Build Coastguard Worker     * server that maps type URLs to message definitions as follows:
93*1b3f573fSAndroid Build Coastguard Worker     * * If no scheme is provided, `https` is assumed.
94*1b3f573fSAndroid Build Coastguard Worker     * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
95*1b3f573fSAndroid Build Coastguard Worker     *   value in binary format, or produce an error.
96*1b3f573fSAndroid Build Coastguard Worker     * * Applications are allowed to cache lookup results based on the
97*1b3f573fSAndroid Build Coastguard Worker     *   URL, or have them precompiled into a binary to avoid any
98*1b3f573fSAndroid Build Coastguard Worker     *   lookup. Therefore, binary compatibility needs to be preserved
99*1b3f573fSAndroid Build Coastguard Worker     *   on changes to types. (Use versioned type names to manage
100*1b3f573fSAndroid Build Coastguard Worker     *   breaking changes.)
101*1b3f573fSAndroid Build Coastguard Worker     * Note: this functionality is not currently available in the official
102*1b3f573fSAndroid Build Coastguard Worker     * protobuf release, and it is not used for type URLs beginning with
103*1b3f573fSAndroid Build Coastguard Worker     * type.googleapis.com.
104*1b3f573fSAndroid Build Coastguard Worker     * Schemes other than `http`, `https` (or the empty scheme) might be
105*1b3f573fSAndroid Build Coastguard Worker     * used with implementation specific semantics.
106*1b3f573fSAndroid Build Coastguard Worker     *
107*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>string type_url = 1;</code>
108*1b3f573fSAndroid Build Coastguard Worker     */
109*1b3f573fSAndroid Build Coastguard Worker    protected $type_url = '';
110*1b3f573fSAndroid Build Coastguard Worker    /**
111*1b3f573fSAndroid Build Coastguard Worker     * Must be a valid serialized protocol buffer of the above specified type.
112*1b3f573fSAndroid Build Coastguard Worker     *
113*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>bytes value = 2;</code>
114*1b3f573fSAndroid Build Coastguard Worker     */
115*1b3f573fSAndroid Build Coastguard Worker    protected $value = '';
116*1b3f573fSAndroid Build Coastguard Worker
117*1b3f573fSAndroid Build Coastguard Worker    /**
118*1b3f573fSAndroid Build Coastguard Worker     * Constructor.
119*1b3f573fSAndroid Build Coastguard Worker     *
120*1b3f573fSAndroid Build Coastguard Worker     * @param array $data {
121*1b3f573fSAndroid Build Coastguard Worker     *     Optional. Data for populating the Message object.
122*1b3f573fSAndroid Build Coastguard Worker     *
123*1b3f573fSAndroid Build Coastguard Worker     *     @type string $type_url
124*1b3f573fSAndroid Build Coastguard Worker     *           A URL/resource name that uniquely identifies the type of the serialized
125*1b3f573fSAndroid Build Coastguard Worker     *           protocol buffer message. This string must contain at least
126*1b3f573fSAndroid Build Coastguard Worker     *           one "/" character. The last segment of the URL's path must represent
127*1b3f573fSAndroid Build Coastguard Worker     *           the fully qualified name of the type (as in
128*1b3f573fSAndroid Build Coastguard Worker     *           `path/google.protobuf.Duration`). The name should be in a canonical form
129*1b3f573fSAndroid Build Coastguard Worker     *           (e.g., leading "." is not accepted).
130*1b3f573fSAndroid Build Coastguard Worker     *           In practice, teams usually precompile into the binary all types that they
131*1b3f573fSAndroid Build Coastguard Worker     *           expect it to use in the context of Any. However, for URLs which use the
132*1b3f573fSAndroid Build Coastguard Worker     *           scheme `http`, `https`, or no scheme, one can optionally set up a type
133*1b3f573fSAndroid Build Coastguard Worker     *           server that maps type URLs to message definitions as follows:
134*1b3f573fSAndroid Build Coastguard Worker     *           * If no scheme is provided, `https` is assumed.
135*1b3f573fSAndroid Build Coastguard Worker     *           * An HTTP GET on the URL must yield a [google.protobuf.Type][]
136*1b3f573fSAndroid Build Coastguard Worker     *             value in binary format, or produce an error.
137*1b3f573fSAndroid Build Coastguard Worker     *           * Applications are allowed to cache lookup results based on the
138*1b3f573fSAndroid Build Coastguard Worker     *             URL, or have them precompiled into a binary to avoid any
139*1b3f573fSAndroid Build Coastguard Worker     *             lookup. Therefore, binary compatibility needs to be preserved
140*1b3f573fSAndroid Build Coastguard Worker     *             on changes to types. (Use versioned type names to manage
141*1b3f573fSAndroid Build Coastguard Worker     *             breaking changes.)
142*1b3f573fSAndroid Build Coastguard Worker     *           Note: this functionality is not currently available in the official
143*1b3f573fSAndroid Build Coastguard Worker     *           protobuf release, and it is not used for type URLs beginning with
144*1b3f573fSAndroid Build Coastguard Worker     *           type.googleapis.com.
145*1b3f573fSAndroid Build Coastguard Worker     *           Schemes other than `http`, `https` (or the empty scheme) might be
146*1b3f573fSAndroid Build Coastguard Worker     *           used with implementation specific semantics.
147*1b3f573fSAndroid Build Coastguard Worker     *     @type string $value
148*1b3f573fSAndroid Build Coastguard Worker     *           Must be a valid serialized protocol buffer of the above specified type.
149*1b3f573fSAndroid Build Coastguard Worker     * }
150*1b3f573fSAndroid Build Coastguard Worker     */
151*1b3f573fSAndroid Build Coastguard Worker    public function __construct($data = NULL) {
152*1b3f573fSAndroid Build Coastguard Worker        \GPBMetadata\Google\Protobuf\Any::initOnce();
153*1b3f573fSAndroid Build Coastguard Worker        parent::__construct($data);
154*1b3f573fSAndroid Build Coastguard Worker    }
155*1b3f573fSAndroid Build Coastguard Worker
156*1b3f573fSAndroid Build Coastguard Worker    /**
157*1b3f573fSAndroid Build Coastguard Worker     * A URL/resource name that uniquely identifies the type of the serialized
158*1b3f573fSAndroid Build Coastguard Worker     * protocol buffer message. This string must contain at least
159*1b3f573fSAndroid Build Coastguard Worker     * one "/" character. The last segment of the URL's path must represent
160*1b3f573fSAndroid Build Coastguard Worker     * the fully qualified name of the type (as in
161*1b3f573fSAndroid Build Coastguard Worker     * `path/google.protobuf.Duration`). The name should be in a canonical form
162*1b3f573fSAndroid Build Coastguard Worker     * (e.g., leading "." is not accepted).
163*1b3f573fSAndroid Build Coastguard Worker     * In practice, teams usually precompile into the binary all types that they
164*1b3f573fSAndroid Build Coastguard Worker     * expect it to use in the context of Any. However, for URLs which use the
165*1b3f573fSAndroid Build Coastguard Worker     * scheme `http`, `https`, or no scheme, one can optionally set up a type
166*1b3f573fSAndroid Build Coastguard Worker     * server that maps type URLs to message definitions as follows:
167*1b3f573fSAndroid Build Coastguard Worker     * * If no scheme is provided, `https` is assumed.
168*1b3f573fSAndroid Build Coastguard Worker     * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
169*1b3f573fSAndroid Build Coastguard Worker     *   value in binary format, or produce an error.
170*1b3f573fSAndroid Build Coastguard Worker     * * Applications are allowed to cache lookup results based on the
171*1b3f573fSAndroid Build Coastguard Worker     *   URL, or have them precompiled into a binary to avoid any
172*1b3f573fSAndroid Build Coastguard Worker     *   lookup. Therefore, binary compatibility needs to be preserved
173*1b3f573fSAndroid Build Coastguard Worker     *   on changes to types. (Use versioned type names to manage
174*1b3f573fSAndroid Build Coastguard Worker     *   breaking changes.)
175*1b3f573fSAndroid Build Coastguard Worker     * Note: this functionality is not currently available in the official
176*1b3f573fSAndroid Build Coastguard Worker     * protobuf release, and it is not used for type URLs beginning with
177*1b3f573fSAndroid Build Coastguard Worker     * type.googleapis.com.
178*1b3f573fSAndroid Build Coastguard Worker     * Schemes other than `http`, `https` (or the empty scheme) might be
179*1b3f573fSAndroid Build Coastguard Worker     * used with implementation specific semantics.
180*1b3f573fSAndroid Build Coastguard Worker     *
181*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>string type_url = 1;</code>
182*1b3f573fSAndroid Build Coastguard Worker     * @return string
183*1b3f573fSAndroid Build Coastguard Worker     */
184*1b3f573fSAndroid Build Coastguard Worker    public function getTypeUrl()
185*1b3f573fSAndroid Build Coastguard Worker    {
186*1b3f573fSAndroid Build Coastguard Worker        return $this->type_url;
187*1b3f573fSAndroid Build Coastguard Worker    }
188*1b3f573fSAndroid Build Coastguard Worker
189*1b3f573fSAndroid Build Coastguard Worker    /**
190*1b3f573fSAndroid Build Coastguard Worker     * A URL/resource name that uniquely identifies the type of the serialized
191*1b3f573fSAndroid Build Coastguard Worker     * protocol buffer message. This string must contain at least
192*1b3f573fSAndroid Build Coastguard Worker     * one "/" character. The last segment of the URL's path must represent
193*1b3f573fSAndroid Build Coastguard Worker     * the fully qualified name of the type (as in
194*1b3f573fSAndroid Build Coastguard Worker     * `path/google.protobuf.Duration`). The name should be in a canonical form
195*1b3f573fSAndroid Build Coastguard Worker     * (e.g., leading "." is not accepted).
196*1b3f573fSAndroid Build Coastguard Worker     * In practice, teams usually precompile into the binary all types that they
197*1b3f573fSAndroid Build Coastguard Worker     * expect it to use in the context of Any. However, for URLs which use the
198*1b3f573fSAndroid Build Coastguard Worker     * scheme `http`, `https`, or no scheme, one can optionally set up a type
199*1b3f573fSAndroid Build Coastguard Worker     * server that maps type URLs to message definitions as follows:
200*1b3f573fSAndroid Build Coastguard Worker     * * If no scheme is provided, `https` is assumed.
201*1b3f573fSAndroid Build Coastguard Worker     * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
202*1b3f573fSAndroid Build Coastguard Worker     *   value in binary format, or produce an error.
203*1b3f573fSAndroid Build Coastguard Worker     * * Applications are allowed to cache lookup results based on the
204*1b3f573fSAndroid Build Coastguard Worker     *   URL, or have them precompiled into a binary to avoid any
205*1b3f573fSAndroid Build Coastguard Worker     *   lookup. Therefore, binary compatibility needs to be preserved
206*1b3f573fSAndroid Build Coastguard Worker     *   on changes to types. (Use versioned type names to manage
207*1b3f573fSAndroid Build Coastguard Worker     *   breaking changes.)
208*1b3f573fSAndroid Build Coastguard Worker     * Note: this functionality is not currently available in the official
209*1b3f573fSAndroid Build Coastguard Worker     * protobuf release, and it is not used for type URLs beginning with
210*1b3f573fSAndroid Build Coastguard Worker     * type.googleapis.com.
211*1b3f573fSAndroid Build Coastguard Worker     * Schemes other than `http`, `https` (or the empty scheme) might be
212*1b3f573fSAndroid Build Coastguard Worker     * used with implementation specific semantics.
213*1b3f573fSAndroid Build Coastguard Worker     *
214*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>string type_url = 1;</code>
215*1b3f573fSAndroid Build Coastguard Worker     * @param string $var
216*1b3f573fSAndroid Build Coastguard Worker     * @return $this
217*1b3f573fSAndroid Build Coastguard Worker     */
218*1b3f573fSAndroid Build Coastguard Worker    public function setTypeUrl($var)
219*1b3f573fSAndroid Build Coastguard Worker    {
220*1b3f573fSAndroid Build Coastguard Worker        GPBUtil::checkString($var, True);
221*1b3f573fSAndroid Build Coastguard Worker        $this->type_url = $var;
222*1b3f573fSAndroid Build Coastguard Worker
223*1b3f573fSAndroid Build Coastguard Worker        return $this;
224*1b3f573fSAndroid Build Coastguard Worker    }
225*1b3f573fSAndroid Build Coastguard Worker
226*1b3f573fSAndroid Build Coastguard Worker    /**
227*1b3f573fSAndroid Build Coastguard Worker     * Must be a valid serialized protocol buffer of the above specified type.
228*1b3f573fSAndroid Build Coastguard Worker     *
229*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>bytes value = 2;</code>
230*1b3f573fSAndroid Build Coastguard Worker     * @return string
231*1b3f573fSAndroid Build Coastguard Worker     */
232*1b3f573fSAndroid Build Coastguard Worker    public function getValue()
233*1b3f573fSAndroid Build Coastguard Worker    {
234*1b3f573fSAndroid Build Coastguard Worker        return $this->value;
235*1b3f573fSAndroid Build Coastguard Worker    }
236*1b3f573fSAndroid Build Coastguard Worker
237*1b3f573fSAndroid Build Coastguard Worker    /**
238*1b3f573fSAndroid Build Coastguard Worker     * Must be a valid serialized protocol buffer of the above specified type.
239*1b3f573fSAndroid Build Coastguard Worker     *
240*1b3f573fSAndroid Build Coastguard Worker     * Generated from protobuf field <code>bytes value = 2;</code>
241*1b3f573fSAndroid Build Coastguard Worker     * @param string $var
242*1b3f573fSAndroid Build Coastguard Worker     * @return $this
243*1b3f573fSAndroid Build Coastguard Worker     */
244*1b3f573fSAndroid Build Coastguard Worker    public function setValue($var)
245*1b3f573fSAndroid Build Coastguard Worker    {
246*1b3f573fSAndroid Build Coastguard Worker        GPBUtil::checkString($var, False);
247*1b3f573fSAndroid Build Coastguard Worker        $this->value = $var;
248*1b3f573fSAndroid Build Coastguard Worker
249*1b3f573fSAndroid Build Coastguard Worker        return $this;
250*1b3f573fSAndroid Build Coastguard Worker    }
251*1b3f573fSAndroid Build Coastguard Worker
252*1b3f573fSAndroid Build Coastguard Worker}
253*1b3f573fSAndroid Build Coastguard Worker
254