• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2020 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 // Generated by the protocol buffer compiler.  DO NOT EDIT!
17 // source: google/cloud/talent/v4/filters.proto
18 
19 package com.google.cloud.talent.v4;
20 
21 /**
22  *
23  *
24  * <pre>
25  * The query required to perform a search query.
26  * </pre>
27  *
28  * Protobuf type {@code google.cloud.talent.v4.JobQuery}
29  */
30 public final class JobQuery extends com.google.protobuf.GeneratedMessageV3
31     implements
32     // @@protoc_insertion_point(message_implements:google.cloud.talent.v4.JobQuery)
33     JobQueryOrBuilder {
34   private static final long serialVersionUID = 0L;
35   // Use JobQuery.newBuilder() to construct.
JobQuery(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)36   private JobQuery(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
37     super(builder);
38   }
39 
JobQuery()40   private JobQuery() {
41     query_ = "";
42     queryLanguageCode_ = "";
43     companies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
44     locationFilters_ = java.util.Collections.emptyList();
45     jobCategories_ = java.util.Collections.emptyList();
46     companyDisplayNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
47     customAttributeFilter_ = "";
48     employmentTypes_ = java.util.Collections.emptyList();
49     languageCodes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
50     excludedJobs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
51   }
52 
53   @java.lang.Override
54   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)55   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
56     return new JobQuery();
57   }
58 
59   @java.lang.Override
getUnknownFields()60   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
61     return this.unknownFields;
62   }
63 
getDescriptor()64   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
65     return com.google.cloud.talent.v4.FiltersProto
66         .internal_static_google_cloud_talent_v4_JobQuery_descriptor;
67   }
68 
69   @java.lang.Override
70   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()71       internalGetFieldAccessorTable() {
72     return com.google.cloud.talent.v4.FiltersProto
73         .internal_static_google_cloud_talent_v4_JobQuery_fieldAccessorTable
74         .ensureFieldAccessorsInitialized(
75             com.google.cloud.talent.v4.JobQuery.class,
76             com.google.cloud.talent.v4.JobQuery.Builder.class);
77   }
78 
79   public static final int QUERY_FIELD_NUMBER = 1;
80 
81   @SuppressWarnings("serial")
82   private volatile java.lang.Object query_ = "";
83   /**
84    *
85    *
86    * <pre>
87    * The query string that matches against the job title, description, and
88    * location fields.
89    * The maximum number of allowed characters is 255.
90    * </pre>
91    *
92    * <code>string query = 1;</code>
93    *
94    * @return The query.
95    */
96   @java.lang.Override
getQuery()97   public java.lang.String getQuery() {
98     java.lang.Object ref = query_;
99     if (ref instanceof java.lang.String) {
100       return (java.lang.String) ref;
101     } else {
102       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
103       java.lang.String s = bs.toStringUtf8();
104       query_ = s;
105       return s;
106     }
107   }
108   /**
109    *
110    *
111    * <pre>
112    * The query string that matches against the job title, description, and
113    * location fields.
114    * The maximum number of allowed characters is 255.
115    * </pre>
116    *
117    * <code>string query = 1;</code>
118    *
119    * @return The bytes for query.
120    */
121   @java.lang.Override
getQueryBytes()122   public com.google.protobuf.ByteString getQueryBytes() {
123     java.lang.Object ref = query_;
124     if (ref instanceof java.lang.String) {
125       com.google.protobuf.ByteString b =
126           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
127       query_ = b;
128       return b;
129     } else {
130       return (com.google.protobuf.ByteString) ref;
131     }
132   }
133 
134   public static final int QUERY_LANGUAGE_CODE_FIELD_NUMBER = 14;
135 
136   @SuppressWarnings("serial")
137   private volatile java.lang.Object queryLanguageCode_ = "";
138   /**
139    *
140    *
141    * <pre>
142    * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
143    * example, "en-US". This field helps to better interpret the query.
144    * If a value isn't specified, the query language code is automatically
145    * detected, which may not be accurate.
146    * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
147    * For more information, see
148    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
149    * </pre>
150    *
151    * <code>string query_language_code = 14;</code>
152    *
153    * @return The queryLanguageCode.
154    */
155   @java.lang.Override
getQueryLanguageCode()156   public java.lang.String getQueryLanguageCode() {
157     java.lang.Object ref = queryLanguageCode_;
158     if (ref instanceof java.lang.String) {
159       return (java.lang.String) ref;
160     } else {
161       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
162       java.lang.String s = bs.toStringUtf8();
163       queryLanguageCode_ = s;
164       return s;
165     }
166   }
167   /**
168    *
169    *
170    * <pre>
171    * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
172    * example, "en-US". This field helps to better interpret the query.
173    * If a value isn't specified, the query language code is automatically
174    * detected, which may not be accurate.
175    * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
176    * For more information, see
177    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
178    * </pre>
179    *
180    * <code>string query_language_code = 14;</code>
181    *
182    * @return The bytes for queryLanguageCode.
183    */
184   @java.lang.Override
getQueryLanguageCodeBytes()185   public com.google.protobuf.ByteString getQueryLanguageCodeBytes() {
186     java.lang.Object ref = queryLanguageCode_;
187     if (ref instanceof java.lang.String) {
188       com.google.protobuf.ByteString b =
189           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
190       queryLanguageCode_ = b;
191       return b;
192     } else {
193       return (com.google.protobuf.ByteString) ref;
194     }
195   }
196 
197   public static final int COMPANIES_FIELD_NUMBER = 2;
198 
199   @SuppressWarnings("serial")
200   private com.google.protobuf.LazyStringList companies_;
201   /**
202    *
203    *
204    * <pre>
205    * This filter specifies the company entities to search against.
206    * If a value isn't specified, jobs are searched for against all
207    * companies.
208    * If multiple values are specified, jobs are searched against the
209    * companies specified.
210    * The format is
211    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
212    * example, "projects/foo/tenants/bar/companies/baz".
213    * At most 20 company filters are allowed.
214    * </pre>
215    *
216    * <code>repeated string companies = 2;</code>
217    *
218    * @return A list containing the companies.
219    */
getCompaniesList()220   public com.google.protobuf.ProtocolStringList getCompaniesList() {
221     return companies_;
222   }
223   /**
224    *
225    *
226    * <pre>
227    * This filter specifies the company entities to search against.
228    * If a value isn't specified, jobs are searched for against all
229    * companies.
230    * If multiple values are specified, jobs are searched against the
231    * companies specified.
232    * The format is
233    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
234    * example, "projects/foo/tenants/bar/companies/baz".
235    * At most 20 company filters are allowed.
236    * </pre>
237    *
238    * <code>repeated string companies = 2;</code>
239    *
240    * @return The count of companies.
241    */
getCompaniesCount()242   public int getCompaniesCount() {
243     return companies_.size();
244   }
245   /**
246    *
247    *
248    * <pre>
249    * This filter specifies the company entities to search against.
250    * If a value isn't specified, jobs are searched for against all
251    * companies.
252    * If multiple values are specified, jobs are searched against the
253    * companies specified.
254    * The format is
255    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
256    * example, "projects/foo/tenants/bar/companies/baz".
257    * At most 20 company filters are allowed.
258    * </pre>
259    *
260    * <code>repeated string companies = 2;</code>
261    *
262    * @param index The index of the element to return.
263    * @return The companies at the given index.
264    */
getCompanies(int index)265   public java.lang.String getCompanies(int index) {
266     return companies_.get(index);
267   }
268   /**
269    *
270    *
271    * <pre>
272    * This filter specifies the company entities to search against.
273    * If a value isn't specified, jobs are searched for against all
274    * companies.
275    * If multiple values are specified, jobs are searched against the
276    * companies specified.
277    * The format is
278    * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
279    * example, "projects/foo/tenants/bar/companies/baz".
280    * At most 20 company filters are allowed.
281    * </pre>
282    *
283    * <code>repeated string companies = 2;</code>
284    *
285    * @param index The index of the value to return.
286    * @return The bytes of the companies at the given index.
287    */
getCompaniesBytes(int index)288   public com.google.protobuf.ByteString getCompaniesBytes(int index) {
289     return companies_.getByteString(index);
290   }
291 
292   public static final int LOCATION_FILTERS_FIELD_NUMBER = 3;
293 
294   @SuppressWarnings("serial")
295   private java.util.List<com.google.cloud.talent.v4.LocationFilter> locationFilters_;
296   /**
297    *
298    *
299    * <pre>
300    * The location filter specifies geo-regions containing the jobs to
301    * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
302    * for more information.
303    * If a location value isn't specified, jobs fitting the other search
304    * criteria are retrieved regardless of where they're located.
305    * If multiple values are specified, jobs are retrieved from any of the
306    * specified locations. If different values are specified for the
307    * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
308    * parameter, the maximum provided distance is used for all locations.
309    * At most 5 location filters are allowed.
310    * </pre>
311    *
312    * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
313    */
314   @java.lang.Override
getLocationFiltersList()315   public java.util.List<com.google.cloud.talent.v4.LocationFilter> getLocationFiltersList() {
316     return locationFilters_;
317   }
318   /**
319    *
320    *
321    * <pre>
322    * The location filter specifies geo-regions containing the jobs to
323    * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
324    * for more information.
325    * If a location value isn't specified, jobs fitting the other search
326    * criteria are retrieved regardless of where they're located.
327    * If multiple values are specified, jobs are retrieved from any of the
328    * specified locations. If different values are specified for the
329    * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
330    * parameter, the maximum provided distance is used for all locations.
331    * At most 5 location filters are allowed.
332    * </pre>
333    *
334    * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
335    */
336   @java.lang.Override
337   public java.util.List<? extends com.google.cloud.talent.v4.LocationFilterOrBuilder>
getLocationFiltersOrBuilderList()338       getLocationFiltersOrBuilderList() {
339     return locationFilters_;
340   }
341   /**
342    *
343    *
344    * <pre>
345    * The location filter specifies geo-regions containing the jobs to
346    * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
347    * for more information.
348    * If a location value isn't specified, jobs fitting the other search
349    * criteria are retrieved regardless of where they're located.
350    * If multiple values are specified, jobs are retrieved from any of the
351    * specified locations. If different values are specified for the
352    * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
353    * parameter, the maximum provided distance is used for all locations.
354    * At most 5 location filters are allowed.
355    * </pre>
356    *
357    * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
358    */
359   @java.lang.Override
getLocationFiltersCount()360   public int getLocationFiltersCount() {
361     return locationFilters_.size();
362   }
363   /**
364    *
365    *
366    * <pre>
367    * The location filter specifies geo-regions containing the jobs to
368    * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
369    * for more information.
370    * If a location value isn't specified, jobs fitting the other search
371    * criteria are retrieved regardless of where they're located.
372    * If multiple values are specified, jobs are retrieved from any of the
373    * specified locations. If different values are specified for the
374    * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
375    * parameter, the maximum provided distance is used for all locations.
376    * At most 5 location filters are allowed.
377    * </pre>
378    *
379    * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
380    */
381   @java.lang.Override
getLocationFilters(int index)382   public com.google.cloud.talent.v4.LocationFilter getLocationFilters(int index) {
383     return locationFilters_.get(index);
384   }
385   /**
386    *
387    *
388    * <pre>
389    * The location filter specifies geo-regions containing the jobs to
390    * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
391    * for more information.
392    * If a location value isn't specified, jobs fitting the other search
393    * criteria are retrieved regardless of where they're located.
394    * If multiple values are specified, jobs are retrieved from any of the
395    * specified locations. If different values are specified for the
396    * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
397    * parameter, the maximum provided distance is used for all locations.
398    * At most 5 location filters are allowed.
399    * </pre>
400    *
401    * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
402    */
403   @java.lang.Override
getLocationFiltersOrBuilder(int index)404   public com.google.cloud.talent.v4.LocationFilterOrBuilder getLocationFiltersOrBuilder(int index) {
405     return locationFilters_.get(index);
406   }
407 
408   public static final int JOB_CATEGORIES_FIELD_NUMBER = 4;
409 
410   @SuppressWarnings("serial")
411   private java.util.List<java.lang.Integer> jobCategories_;
412 
413   private static final com.google.protobuf.Internal.ListAdapter.Converter<
414           java.lang.Integer, com.google.cloud.talent.v4.JobCategory>
415       jobCategories_converter_ =
416           new com.google.protobuf.Internal.ListAdapter.Converter<
417               java.lang.Integer, com.google.cloud.talent.v4.JobCategory>() {
418             public com.google.cloud.talent.v4.JobCategory convert(java.lang.Integer from) {
419               com.google.cloud.talent.v4.JobCategory result =
420                   com.google.cloud.talent.v4.JobCategory.forNumber(from);
421               return result == null ? com.google.cloud.talent.v4.JobCategory.UNRECOGNIZED : result;
422             }
423           };
424   /**
425    *
426    *
427    * <pre>
428    * The category filter specifies the categories of jobs to search against.
429    * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
430    * If a value isn't specified, jobs from any category are searched against.
431    * If multiple values are specified, jobs from any of the specified
432    * categories are searched against.
433    * </pre>
434    *
435    * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
436    *
437    * @return A list containing the jobCategories.
438    */
439   @java.lang.Override
getJobCategoriesList()440   public java.util.List<com.google.cloud.talent.v4.JobCategory> getJobCategoriesList() {
441     return new com.google.protobuf.Internal.ListAdapter<
442         java.lang.Integer, com.google.cloud.talent.v4.JobCategory>(
443         jobCategories_, jobCategories_converter_);
444   }
445   /**
446    *
447    *
448    * <pre>
449    * The category filter specifies the categories of jobs to search against.
450    * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
451    * If a value isn't specified, jobs from any category are searched against.
452    * If multiple values are specified, jobs from any of the specified
453    * categories are searched against.
454    * </pre>
455    *
456    * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
457    *
458    * @return The count of jobCategories.
459    */
460   @java.lang.Override
getJobCategoriesCount()461   public int getJobCategoriesCount() {
462     return jobCategories_.size();
463   }
464   /**
465    *
466    *
467    * <pre>
468    * The category filter specifies the categories of jobs to search against.
469    * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
470    * If a value isn't specified, jobs from any category are searched against.
471    * If multiple values are specified, jobs from any of the specified
472    * categories are searched against.
473    * </pre>
474    *
475    * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
476    *
477    * @param index The index of the element to return.
478    * @return The jobCategories at the given index.
479    */
480   @java.lang.Override
getJobCategories(int index)481   public com.google.cloud.talent.v4.JobCategory getJobCategories(int index) {
482     return jobCategories_converter_.convert(jobCategories_.get(index));
483   }
484   /**
485    *
486    *
487    * <pre>
488    * The category filter specifies the categories of jobs to search against.
489    * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
490    * If a value isn't specified, jobs from any category are searched against.
491    * If multiple values are specified, jobs from any of the specified
492    * categories are searched against.
493    * </pre>
494    *
495    * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
496    *
497    * @return A list containing the enum numeric values on the wire for jobCategories.
498    */
499   @java.lang.Override
getJobCategoriesValueList()500   public java.util.List<java.lang.Integer> getJobCategoriesValueList() {
501     return jobCategories_;
502   }
503   /**
504    *
505    *
506    * <pre>
507    * The category filter specifies the categories of jobs to search against.
508    * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
509    * If a value isn't specified, jobs from any category are searched against.
510    * If multiple values are specified, jobs from any of the specified
511    * categories are searched against.
512    * </pre>
513    *
514    * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
515    *
516    * @param index The index of the value to return.
517    * @return The enum numeric value on the wire of jobCategories at the given index.
518    */
519   @java.lang.Override
getJobCategoriesValue(int index)520   public int getJobCategoriesValue(int index) {
521     return jobCategories_.get(index);
522   }
523 
524   private int jobCategoriesMemoizedSerializedSize;
525 
526   public static final int COMMUTE_FILTER_FIELD_NUMBER = 5;
527   private com.google.cloud.talent.v4.CommuteFilter commuteFilter_;
528   /**
529    *
530    *
531    * <pre>
532    * Allows filtering jobs by commute time with different travel methods (for
533    *  example, driving or public transit).
534    * Note: This only works when you specify a
535    * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
536    * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
537    * ignored.
538    *  Currently we don't support sorting by commute time.
539    * </pre>
540    *
541    * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
542    *
543    * @return Whether the commuteFilter field is set.
544    */
545   @java.lang.Override
hasCommuteFilter()546   public boolean hasCommuteFilter() {
547     return commuteFilter_ != null;
548   }
549   /**
550    *
551    *
552    * <pre>
553    * Allows filtering jobs by commute time with different travel methods (for
554    *  example, driving or public transit).
555    * Note: This only works when you specify a
556    * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
557    * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
558    * ignored.
559    *  Currently we don't support sorting by commute time.
560    * </pre>
561    *
562    * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
563    *
564    * @return The commuteFilter.
565    */
566   @java.lang.Override
getCommuteFilter()567   public com.google.cloud.talent.v4.CommuteFilter getCommuteFilter() {
568     return commuteFilter_ == null
569         ? com.google.cloud.talent.v4.CommuteFilter.getDefaultInstance()
570         : commuteFilter_;
571   }
572   /**
573    *
574    *
575    * <pre>
576    * Allows filtering jobs by commute time with different travel methods (for
577    *  example, driving or public transit).
578    * Note: This only works when you specify a
579    * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
580    * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
581    * ignored.
582    *  Currently we don't support sorting by commute time.
583    * </pre>
584    *
585    * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
586    */
587   @java.lang.Override
getCommuteFilterOrBuilder()588   public com.google.cloud.talent.v4.CommuteFilterOrBuilder getCommuteFilterOrBuilder() {
589     return commuteFilter_ == null
590         ? com.google.cloud.talent.v4.CommuteFilter.getDefaultInstance()
591         : commuteFilter_;
592   }
593 
594   public static final int COMPANY_DISPLAY_NAMES_FIELD_NUMBER = 6;
595 
596   @SuppressWarnings("serial")
597   private com.google.protobuf.LazyStringList companyDisplayNames_;
598   /**
599    *
600    *
601    * <pre>
602    * This filter specifies the company
603    * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
604    * jobs to search against. The company name must match the value exactly.
605    * Alternatively, the value being searched for can be wrapped in different
606    * match operators.
607    * `SUBSTRING_MATCH([value])`
608    * The company name must contain a case insensitive substring match of the
609    * value. Using this function may increase latency.
610    * Sample Value: `SUBSTRING_MATCH(google)`
611    * `MULTI_WORD_TOKEN_MATCH([value])`
612    * The value will be treated as a multi word token and the company name must
613    * contain a case insensitive match of the value. Using this function may
614    * increase latency.
615    * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
616    * If a value isn't specified, jobs within the search results are
617    * associated with any company.
618    * If multiple values are specified, jobs within the search results may be
619    * associated with any of the specified companies.
620    * At most 20 company display name filters are allowed.
621    * </pre>
622    *
623    * <code>repeated string company_display_names = 6;</code>
624    *
625    * @return A list containing the companyDisplayNames.
626    */
getCompanyDisplayNamesList()627   public com.google.protobuf.ProtocolStringList getCompanyDisplayNamesList() {
628     return companyDisplayNames_;
629   }
630   /**
631    *
632    *
633    * <pre>
634    * This filter specifies the company
635    * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
636    * jobs to search against. The company name must match the value exactly.
637    * Alternatively, the value being searched for can be wrapped in different
638    * match operators.
639    * `SUBSTRING_MATCH([value])`
640    * The company name must contain a case insensitive substring match of the
641    * value. Using this function may increase latency.
642    * Sample Value: `SUBSTRING_MATCH(google)`
643    * `MULTI_WORD_TOKEN_MATCH([value])`
644    * The value will be treated as a multi word token and the company name must
645    * contain a case insensitive match of the value. Using this function may
646    * increase latency.
647    * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
648    * If a value isn't specified, jobs within the search results are
649    * associated with any company.
650    * If multiple values are specified, jobs within the search results may be
651    * associated with any of the specified companies.
652    * At most 20 company display name filters are allowed.
653    * </pre>
654    *
655    * <code>repeated string company_display_names = 6;</code>
656    *
657    * @return The count of companyDisplayNames.
658    */
getCompanyDisplayNamesCount()659   public int getCompanyDisplayNamesCount() {
660     return companyDisplayNames_.size();
661   }
662   /**
663    *
664    *
665    * <pre>
666    * This filter specifies the company
667    * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
668    * jobs to search against. The company name must match the value exactly.
669    * Alternatively, the value being searched for can be wrapped in different
670    * match operators.
671    * `SUBSTRING_MATCH([value])`
672    * The company name must contain a case insensitive substring match of the
673    * value. Using this function may increase latency.
674    * Sample Value: `SUBSTRING_MATCH(google)`
675    * `MULTI_WORD_TOKEN_MATCH([value])`
676    * The value will be treated as a multi word token and the company name must
677    * contain a case insensitive match of the value. Using this function may
678    * increase latency.
679    * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
680    * If a value isn't specified, jobs within the search results are
681    * associated with any company.
682    * If multiple values are specified, jobs within the search results may be
683    * associated with any of the specified companies.
684    * At most 20 company display name filters are allowed.
685    * </pre>
686    *
687    * <code>repeated string company_display_names = 6;</code>
688    *
689    * @param index The index of the element to return.
690    * @return The companyDisplayNames at the given index.
691    */
getCompanyDisplayNames(int index)692   public java.lang.String getCompanyDisplayNames(int index) {
693     return companyDisplayNames_.get(index);
694   }
695   /**
696    *
697    *
698    * <pre>
699    * This filter specifies the company
700    * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
701    * jobs to search against. The company name must match the value exactly.
702    * Alternatively, the value being searched for can be wrapped in different
703    * match operators.
704    * `SUBSTRING_MATCH([value])`
705    * The company name must contain a case insensitive substring match of the
706    * value. Using this function may increase latency.
707    * Sample Value: `SUBSTRING_MATCH(google)`
708    * `MULTI_WORD_TOKEN_MATCH([value])`
709    * The value will be treated as a multi word token and the company name must
710    * contain a case insensitive match of the value. Using this function may
711    * increase latency.
712    * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
713    * If a value isn't specified, jobs within the search results are
714    * associated with any company.
715    * If multiple values are specified, jobs within the search results may be
716    * associated with any of the specified companies.
717    * At most 20 company display name filters are allowed.
718    * </pre>
719    *
720    * <code>repeated string company_display_names = 6;</code>
721    *
722    * @param index The index of the value to return.
723    * @return The bytes of the companyDisplayNames at the given index.
724    */
getCompanyDisplayNamesBytes(int index)725   public com.google.protobuf.ByteString getCompanyDisplayNamesBytes(int index) {
726     return companyDisplayNames_.getByteString(index);
727   }
728 
729   public static final int COMPENSATION_FILTER_FIELD_NUMBER = 7;
730   private com.google.cloud.talent.v4.CompensationFilter compensationFilter_;
731   /**
732    *
733    *
734    * <pre>
735    * This search filter is applied only to
736    * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
737    * example, if the filter is specified as "Hourly job with per-hour
738    * compensation &gt; $15", only jobs meeting these criteria are searched. If a
739    * filter isn't defined, all open jobs are searched.
740    * </pre>
741    *
742    * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
743    *
744    * @return Whether the compensationFilter field is set.
745    */
746   @java.lang.Override
hasCompensationFilter()747   public boolean hasCompensationFilter() {
748     return compensationFilter_ != null;
749   }
750   /**
751    *
752    *
753    * <pre>
754    * This search filter is applied only to
755    * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
756    * example, if the filter is specified as "Hourly job with per-hour
757    * compensation &gt; $15", only jobs meeting these criteria are searched. If a
758    * filter isn't defined, all open jobs are searched.
759    * </pre>
760    *
761    * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
762    *
763    * @return The compensationFilter.
764    */
765   @java.lang.Override
getCompensationFilter()766   public com.google.cloud.talent.v4.CompensationFilter getCompensationFilter() {
767     return compensationFilter_ == null
768         ? com.google.cloud.talent.v4.CompensationFilter.getDefaultInstance()
769         : compensationFilter_;
770   }
771   /**
772    *
773    *
774    * <pre>
775    * This search filter is applied only to
776    * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
777    * example, if the filter is specified as "Hourly job with per-hour
778    * compensation &gt; $15", only jobs meeting these criteria are searched. If a
779    * filter isn't defined, all open jobs are searched.
780    * </pre>
781    *
782    * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
783    */
784   @java.lang.Override
getCompensationFilterOrBuilder()785   public com.google.cloud.talent.v4.CompensationFilterOrBuilder getCompensationFilterOrBuilder() {
786     return compensationFilter_ == null
787         ? com.google.cloud.talent.v4.CompensationFilter.getDefaultInstance()
788         : compensationFilter_;
789   }
790 
791   public static final int CUSTOM_ATTRIBUTE_FILTER_FIELD_NUMBER = 8;
792 
793   @SuppressWarnings("serial")
794   private volatile java.lang.Object customAttributeFilter_ = "";
795   /**
796    *
797    *
798    * <pre>
799    * This filter specifies a structured syntax to match against the
800    * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
801    * marked as `filterable`.
802    * The syntax for this expression is a subset of SQL syntax.
803    * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
804    * left of the operator is a custom field key and the right of the operator
805    * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
806    * quote (&#92;") characters.
807    * Supported functions are `LOWER([field_name])` to
808    * perform a case insensitive match and `EMPTY([field_name])` to filter on the
809    * existence of a key.
810    * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
811    * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
812    * comparisons or functions are allowed in the expression. The expression
813    * must be &lt; 10000 bytes in length.
814    * Sample Query:
815    * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
816    * driving_years &gt; 10`
817    * </pre>
818    *
819    * <code>string custom_attribute_filter = 8;</code>
820    *
821    * @return The customAttributeFilter.
822    */
823   @java.lang.Override
getCustomAttributeFilter()824   public java.lang.String getCustomAttributeFilter() {
825     java.lang.Object ref = customAttributeFilter_;
826     if (ref instanceof java.lang.String) {
827       return (java.lang.String) ref;
828     } else {
829       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
830       java.lang.String s = bs.toStringUtf8();
831       customAttributeFilter_ = s;
832       return s;
833     }
834   }
835   /**
836    *
837    *
838    * <pre>
839    * This filter specifies a structured syntax to match against the
840    * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
841    * marked as `filterable`.
842    * The syntax for this expression is a subset of SQL syntax.
843    * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
844    * left of the operator is a custom field key and the right of the operator
845    * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
846    * quote (&#92;") characters.
847    * Supported functions are `LOWER([field_name])` to
848    * perform a case insensitive match and `EMPTY([field_name])` to filter on the
849    * existence of a key.
850    * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
851    * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
852    * comparisons or functions are allowed in the expression. The expression
853    * must be &lt; 10000 bytes in length.
854    * Sample Query:
855    * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
856    * driving_years &gt; 10`
857    * </pre>
858    *
859    * <code>string custom_attribute_filter = 8;</code>
860    *
861    * @return The bytes for customAttributeFilter.
862    */
863   @java.lang.Override
getCustomAttributeFilterBytes()864   public com.google.protobuf.ByteString getCustomAttributeFilterBytes() {
865     java.lang.Object ref = customAttributeFilter_;
866     if (ref instanceof java.lang.String) {
867       com.google.protobuf.ByteString b =
868           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
869       customAttributeFilter_ = b;
870       return b;
871     } else {
872       return (com.google.protobuf.ByteString) ref;
873     }
874   }
875 
876   public static final int DISABLE_SPELL_CHECK_FIELD_NUMBER = 9;
877   private boolean disableSpellCheck_ = false;
878   /**
879    *
880    *
881    * <pre>
882    * This flag controls the spell-check feature. If false, the
883    * service attempts to correct a misspelled query,
884    * for example, "enginee" is corrected to "engineer".
885    * Defaults to false: a spell check is performed.
886    * </pre>
887    *
888    * <code>bool disable_spell_check = 9;</code>
889    *
890    * @return The disableSpellCheck.
891    */
892   @java.lang.Override
getDisableSpellCheck()893   public boolean getDisableSpellCheck() {
894     return disableSpellCheck_;
895   }
896 
897   public static final int EMPLOYMENT_TYPES_FIELD_NUMBER = 10;
898 
899   @SuppressWarnings("serial")
900   private java.util.List<java.lang.Integer> employmentTypes_;
901 
902   private static final com.google.protobuf.Internal.ListAdapter.Converter<
903           java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>
904       employmentTypes_converter_ =
905           new com.google.protobuf.Internal.ListAdapter.Converter<
906               java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>() {
907             public com.google.cloud.talent.v4.EmploymentType convert(java.lang.Integer from) {
908               com.google.cloud.talent.v4.EmploymentType result =
909                   com.google.cloud.talent.v4.EmploymentType.forNumber(from);
910               return result == null
911                   ? com.google.cloud.talent.v4.EmploymentType.UNRECOGNIZED
912                   : result;
913             }
914           };
915   /**
916    *
917    *
918    * <pre>
919    * The employment type filter specifies the employment type of jobs to
920    * search against, such as
921    * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
922    * If a value isn't specified, jobs in the search results includes any
923    * employment type.
924    * If multiple values are specified, jobs in the search results include
925    * any of the specified employment types.
926    * </pre>
927    *
928    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
929    *
930    * @return A list containing the employmentTypes.
931    */
932   @java.lang.Override
getEmploymentTypesList()933   public java.util.List<com.google.cloud.talent.v4.EmploymentType> getEmploymentTypesList() {
934     return new com.google.protobuf.Internal.ListAdapter<
935         java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>(
936         employmentTypes_, employmentTypes_converter_);
937   }
938   /**
939    *
940    *
941    * <pre>
942    * The employment type filter specifies the employment type of jobs to
943    * search against, such as
944    * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
945    * If a value isn't specified, jobs in the search results includes any
946    * employment type.
947    * If multiple values are specified, jobs in the search results include
948    * any of the specified employment types.
949    * </pre>
950    *
951    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
952    *
953    * @return The count of employmentTypes.
954    */
955   @java.lang.Override
getEmploymentTypesCount()956   public int getEmploymentTypesCount() {
957     return employmentTypes_.size();
958   }
959   /**
960    *
961    *
962    * <pre>
963    * The employment type filter specifies the employment type of jobs to
964    * search against, such as
965    * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
966    * If a value isn't specified, jobs in the search results includes any
967    * employment type.
968    * If multiple values are specified, jobs in the search results include
969    * any of the specified employment types.
970    * </pre>
971    *
972    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
973    *
974    * @param index The index of the element to return.
975    * @return The employmentTypes at the given index.
976    */
977   @java.lang.Override
getEmploymentTypes(int index)978   public com.google.cloud.talent.v4.EmploymentType getEmploymentTypes(int index) {
979     return employmentTypes_converter_.convert(employmentTypes_.get(index));
980   }
981   /**
982    *
983    *
984    * <pre>
985    * The employment type filter specifies the employment type of jobs to
986    * search against, such as
987    * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
988    * If a value isn't specified, jobs in the search results includes any
989    * employment type.
990    * If multiple values are specified, jobs in the search results include
991    * any of the specified employment types.
992    * </pre>
993    *
994    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
995    *
996    * @return A list containing the enum numeric values on the wire for employmentTypes.
997    */
998   @java.lang.Override
getEmploymentTypesValueList()999   public java.util.List<java.lang.Integer> getEmploymentTypesValueList() {
1000     return employmentTypes_;
1001   }
1002   /**
1003    *
1004    *
1005    * <pre>
1006    * The employment type filter specifies the employment type of jobs to
1007    * search against, such as
1008    * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
1009    * If a value isn't specified, jobs in the search results includes any
1010    * employment type.
1011    * If multiple values are specified, jobs in the search results include
1012    * any of the specified employment types.
1013    * </pre>
1014    *
1015    * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
1016    *
1017    * @param index The index of the value to return.
1018    * @return The enum numeric value on the wire of employmentTypes at the given index.
1019    */
1020   @java.lang.Override
getEmploymentTypesValue(int index)1021   public int getEmploymentTypesValue(int index) {
1022     return employmentTypes_.get(index);
1023   }
1024 
1025   private int employmentTypesMemoizedSerializedSize;
1026 
1027   public static final int LANGUAGE_CODES_FIELD_NUMBER = 11;
1028 
1029   @SuppressWarnings("serial")
1030   private com.google.protobuf.LazyStringList languageCodes_;
1031   /**
1032    *
1033    *
1034    * <pre>
1035    * This filter specifies the locale of jobs to search against,
1036    * for example, "en-US".
1037    * If a value isn't specified, the search results can contain jobs in any
1038    * locale.
1039    * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
1040    * For more information, see
1041    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
1042    * At most 10 language code filters are allowed.
1043    * </pre>
1044    *
1045    * <code>repeated string language_codes = 11;</code>
1046    *
1047    * @return A list containing the languageCodes.
1048    */
getLanguageCodesList()1049   public com.google.protobuf.ProtocolStringList getLanguageCodesList() {
1050     return languageCodes_;
1051   }
1052   /**
1053    *
1054    *
1055    * <pre>
1056    * This filter specifies the locale of jobs to search against,
1057    * for example, "en-US".
1058    * If a value isn't specified, the search results can contain jobs in any
1059    * locale.
1060    * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
1061    * For more information, see
1062    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
1063    * At most 10 language code filters are allowed.
1064    * </pre>
1065    *
1066    * <code>repeated string language_codes = 11;</code>
1067    *
1068    * @return The count of languageCodes.
1069    */
getLanguageCodesCount()1070   public int getLanguageCodesCount() {
1071     return languageCodes_.size();
1072   }
1073   /**
1074    *
1075    *
1076    * <pre>
1077    * This filter specifies the locale of jobs to search against,
1078    * for example, "en-US".
1079    * If a value isn't specified, the search results can contain jobs in any
1080    * locale.
1081    * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
1082    * For more information, see
1083    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
1084    * At most 10 language code filters are allowed.
1085    * </pre>
1086    *
1087    * <code>repeated string language_codes = 11;</code>
1088    *
1089    * @param index The index of the element to return.
1090    * @return The languageCodes at the given index.
1091    */
getLanguageCodes(int index)1092   public java.lang.String getLanguageCodes(int index) {
1093     return languageCodes_.get(index);
1094   }
1095   /**
1096    *
1097    *
1098    * <pre>
1099    * This filter specifies the locale of jobs to search against,
1100    * for example, "en-US".
1101    * If a value isn't specified, the search results can contain jobs in any
1102    * locale.
1103    * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
1104    * For more information, see
1105    * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
1106    * At most 10 language code filters are allowed.
1107    * </pre>
1108    *
1109    * <code>repeated string language_codes = 11;</code>
1110    *
1111    * @param index The index of the value to return.
1112    * @return The bytes of the languageCodes at the given index.
1113    */
getLanguageCodesBytes(int index)1114   public com.google.protobuf.ByteString getLanguageCodesBytes(int index) {
1115     return languageCodes_.getByteString(index);
1116   }
1117 
1118   public static final int PUBLISH_TIME_RANGE_FIELD_NUMBER = 12;
1119   private com.google.cloud.talent.v4.TimestampRange publishTimeRange_;
1120   /**
1121    *
1122    *
1123    * <pre>
1124    * Jobs published within a range specified by this filter are searched
1125    * against.
1126    * </pre>
1127    *
1128    * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
1129    *
1130    * @return Whether the publishTimeRange field is set.
1131    */
1132   @java.lang.Override
hasPublishTimeRange()1133   public boolean hasPublishTimeRange() {
1134     return publishTimeRange_ != null;
1135   }
1136   /**
1137    *
1138    *
1139    * <pre>
1140    * Jobs published within a range specified by this filter are searched
1141    * against.
1142    * </pre>
1143    *
1144    * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
1145    *
1146    * @return The publishTimeRange.
1147    */
1148   @java.lang.Override
getPublishTimeRange()1149   public com.google.cloud.talent.v4.TimestampRange getPublishTimeRange() {
1150     return publishTimeRange_ == null
1151         ? com.google.cloud.talent.v4.TimestampRange.getDefaultInstance()
1152         : publishTimeRange_;
1153   }
1154   /**
1155    *
1156    *
1157    * <pre>
1158    * Jobs published within a range specified by this filter are searched
1159    * against.
1160    * </pre>
1161    *
1162    * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
1163    */
1164   @java.lang.Override
getPublishTimeRangeOrBuilder()1165   public com.google.cloud.talent.v4.TimestampRangeOrBuilder getPublishTimeRangeOrBuilder() {
1166     return publishTimeRange_ == null
1167         ? com.google.cloud.talent.v4.TimestampRange.getDefaultInstance()
1168         : publishTimeRange_;
1169   }
1170 
1171   public static final int EXCLUDED_JOBS_FIELD_NUMBER = 13;
1172 
1173   @SuppressWarnings("serial")
1174   private com.google.protobuf.LazyStringList excludedJobs_;
1175   /**
1176    *
1177    *
1178    * <pre>
1179    * This filter specifies a list of job names to be excluded during search.
1180    * At most 400 excluded job names are allowed.
1181    * </pre>
1182    *
1183    * <code>repeated string excluded_jobs = 13;</code>
1184    *
1185    * @return A list containing the excludedJobs.
1186    */
getExcludedJobsList()1187   public com.google.protobuf.ProtocolStringList getExcludedJobsList() {
1188     return excludedJobs_;
1189   }
1190   /**
1191    *
1192    *
1193    * <pre>
1194    * This filter specifies a list of job names to be excluded during search.
1195    * At most 400 excluded job names are allowed.
1196    * </pre>
1197    *
1198    * <code>repeated string excluded_jobs = 13;</code>
1199    *
1200    * @return The count of excludedJobs.
1201    */
getExcludedJobsCount()1202   public int getExcludedJobsCount() {
1203     return excludedJobs_.size();
1204   }
1205   /**
1206    *
1207    *
1208    * <pre>
1209    * This filter specifies a list of job names to be excluded during search.
1210    * At most 400 excluded job names are allowed.
1211    * </pre>
1212    *
1213    * <code>repeated string excluded_jobs = 13;</code>
1214    *
1215    * @param index The index of the element to return.
1216    * @return The excludedJobs at the given index.
1217    */
getExcludedJobs(int index)1218   public java.lang.String getExcludedJobs(int index) {
1219     return excludedJobs_.get(index);
1220   }
1221   /**
1222    *
1223    *
1224    * <pre>
1225    * This filter specifies a list of job names to be excluded during search.
1226    * At most 400 excluded job names are allowed.
1227    * </pre>
1228    *
1229    * <code>repeated string excluded_jobs = 13;</code>
1230    *
1231    * @param index The index of the value to return.
1232    * @return The bytes of the excludedJobs at the given index.
1233    */
getExcludedJobsBytes(int index)1234   public com.google.protobuf.ByteString getExcludedJobsBytes(int index) {
1235     return excludedJobs_.getByteString(index);
1236   }
1237 
1238   private byte memoizedIsInitialized = -1;
1239 
1240   @java.lang.Override
isInitialized()1241   public final boolean isInitialized() {
1242     byte isInitialized = memoizedIsInitialized;
1243     if (isInitialized == 1) return true;
1244     if (isInitialized == 0) return false;
1245 
1246     memoizedIsInitialized = 1;
1247     return true;
1248   }
1249 
1250   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)1251   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
1252     getSerializedSize();
1253     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) {
1254       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, query_);
1255     }
1256     for (int i = 0; i < companies_.size(); i++) {
1257       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, companies_.getRaw(i));
1258     }
1259     for (int i = 0; i < locationFilters_.size(); i++) {
1260       output.writeMessage(3, locationFilters_.get(i));
1261     }
1262     if (getJobCategoriesList().size() > 0) {
1263       output.writeUInt32NoTag(34);
1264       output.writeUInt32NoTag(jobCategoriesMemoizedSerializedSize);
1265     }
1266     for (int i = 0; i < jobCategories_.size(); i++) {
1267       output.writeEnumNoTag(jobCategories_.get(i));
1268     }
1269     if (commuteFilter_ != null) {
1270       output.writeMessage(5, getCommuteFilter());
1271     }
1272     for (int i = 0; i < companyDisplayNames_.size(); i++) {
1273       com.google.protobuf.GeneratedMessageV3.writeString(output, 6, companyDisplayNames_.getRaw(i));
1274     }
1275     if (compensationFilter_ != null) {
1276       output.writeMessage(7, getCompensationFilter());
1277     }
1278     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(customAttributeFilter_)) {
1279       com.google.protobuf.GeneratedMessageV3.writeString(output, 8, customAttributeFilter_);
1280     }
1281     if (disableSpellCheck_ != false) {
1282       output.writeBool(9, disableSpellCheck_);
1283     }
1284     if (getEmploymentTypesList().size() > 0) {
1285       output.writeUInt32NoTag(82);
1286       output.writeUInt32NoTag(employmentTypesMemoizedSerializedSize);
1287     }
1288     for (int i = 0; i < employmentTypes_.size(); i++) {
1289       output.writeEnumNoTag(employmentTypes_.get(i));
1290     }
1291     for (int i = 0; i < languageCodes_.size(); i++) {
1292       com.google.protobuf.GeneratedMessageV3.writeString(output, 11, languageCodes_.getRaw(i));
1293     }
1294     if (publishTimeRange_ != null) {
1295       output.writeMessage(12, getPublishTimeRange());
1296     }
1297     for (int i = 0; i < excludedJobs_.size(); i++) {
1298       com.google.protobuf.GeneratedMessageV3.writeString(output, 13, excludedJobs_.getRaw(i));
1299     }
1300     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(queryLanguageCode_)) {
1301       com.google.protobuf.GeneratedMessageV3.writeString(output, 14, queryLanguageCode_);
1302     }
1303     getUnknownFields().writeTo(output);
1304   }
1305 
1306   @java.lang.Override
getSerializedSize()1307   public int getSerializedSize() {
1308     int size = memoizedSize;
1309     if (size != -1) return size;
1310 
1311     size = 0;
1312     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(query_)) {
1313       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, query_);
1314     }
1315     {
1316       int dataSize = 0;
1317       for (int i = 0; i < companies_.size(); i++) {
1318         dataSize += computeStringSizeNoTag(companies_.getRaw(i));
1319       }
1320       size += dataSize;
1321       size += 1 * getCompaniesList().size();
1322     }
1323     for (int i = 0; i < locationFilters_.size(); i++) {
1324       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, locationFilters_.get(i));
1325     }
1326     {
1327       int dataSize = 0;
1328       for (int i = 0; i < jobCategories_.size(); i++) {
1329         dataSize +=
1330             com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(jobCategories_.get(i));
1331       }
1332       size += dataSize;
1333       if (!getJobCategoriesList().isEmpty()) {
1334         size += 1;
1335         size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
1336       }
1337       jobCategoriesMemoizedSerializedSize = dataSize;
1338     }
1339     if (commuteFilter_ != null) {
1340       size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getCommuteFilter());
1341     }
1342     {
1343       int dataSize = 0;
1344       for (int i = 0; i < companyDisplayNames_.size(); i++) {
1345         dataSize += computeStringSizeNoTag(companyDisplayNames_.getRaw(i));
1346       }
1347       size += dataSize;
1348       size += 1 * getCompanyDisplayNamesList().size();
1349     }
1350     if (compensationFilter_ != null) {
1351       size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getCompensationFilter());
1352     }
1353     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(customAttributeFilter_)) {
1354       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, customAttributeFilter_);
1355     }
1356     if (disableSpellCheck_ != false) {
1357       size += com.google.protobuf.CodedOutputStream.computeBoolSize(9, disableSpellCheck_);
1358     }
1359     {
1360       int dataSize = 0;
1361       for (int i = 0; i < employmentTypes_.size(); i++) {
1362         dataSize +=
1363             com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(employmentTypes_.get(i));
1364       }
1365       size += dataSize;
1366       if (!getEmploymentTypesList().isEmpty()) {
1367         size += 1;
1368         size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
1369       }
1370       employmentTypesMemoizedSerializedSize = dataSize;
1371     }
1372     {
1373       int dataSize = 0;
1374       for (int i = 0; i < languageCodes_.size(); i++) {
1375         dataSize += computeStringSizeNoTag(languageCodes_.getRaw(i));
1376       }
1377       size += dataSize;
1378       size += 1 * getLanguageCodesList().size();
1379     }
1380     if (publishTimeRange_ != null) {
1381       size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getPublishTimeRange());
1382     }
1383     {
1384       int dataSize = 0;
1385       for (int i = 0; i < excludedJobs_.size(); i++) {
1386         dataSize += computeStringSizeNoTag(excludedJobs_.getRaw(i));
1387       }
1388       size += dataSize;
1389       size += 1 * getExcludedJobsList().size();
1390     }
1391     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(queryLanguageCode_)) {
1392       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, queryLanguageCode_);
1393     }
1394     size += getUnknownFields().getSerializedSize();
1395     memoizedSize = size;
1396     return size;
1397   }
1398 
1399   @java.lang.Override
equals(final java.lang.Object obj)1400   public boolean equals(final java.lang.Object obj) {
1401     if (obj == this) {
1402       return true;
1403     }
1404     if (!(obj instanceof com.google.cloud.talent.v4.JobQuery)) {
1405       return super.equals(obj);
1406     }
1407     com.google.cloud.talent.v4.JobQuery other = (com.google.cloud.talent.v4.JobQuery) obj;
1408 
1409     if (!getQuery().equals(other.getQuery())) return false;
1410     if (!getQueryLanguageCode().equals(other.getQueryLanguageCode())) return false;
1411     if (!getCompaniesList().equals(other.getCompaniesList())) return false;
1412     if (!getLocationFiltersList().equals(other.getLocationFiltersList())) return false;
1413     if (!jobCategories_.equals(other.jobCategories_)) return false;
1414     if (hasCommuteFilter() != other.hasCommuteFilter()) return false;
1415     if (hasCommuteFilter()) {
1416       if (!getCommuteFilter().equals(other.getCommuteFilter())) return false;
1417     }
1418     if (!getCompanyDisplayNamesList().equals(other.getCompanyDisplayNamesList())) return false;
1419     if (hasCompensationFilter() != other.hasCompensationFilter()) return false;
1420     if (hasCompensationFilter()) {
1421       if (!getCompensationFilter().equals(other.getCompensationFilter())) return false;
1422     }
1423     if (!getCustomAttributeFilter().equals(other.getCustomAttributeFilter())) return false;
1424     if (getDisableSpellCheck() != other.getDisableSpellCheck()) return false;
1425     if (!employmentTypes_.equals(other.employmentTypes_)) return false;
1426     if (!getLanguageCodesList().equals(other.getLanguageCodesList())) return false;
1427     if (hasPublishTimeRange() != other.hasPublishTimeRange()) return false;
1428     if (hasPublishTimeRange()) {
1429       if (!getPublishTimeRange().equals(other.getPublishTimeRange())) return false;
1430     }
1431     if (!getExcludedJobsList().equals(other.getExcludedJobsList())) return false;
1432     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1433     return true;
1434   }
1435 
1436   @java.lang.Override
hashCode()1437   public int hashCode() {
1438     if (memoizedHashCode != 0) {
1439       return memoizedHashCode;
1440     }
1441     int hash = 41;
1442     hash = (19 * hash) + getDescriptor().hashCode();
1443     hash = (37 * hash) + QUERY_FIELD_NUMBER;
1444     hash = (53 * hash) + getQuery().hashCode();
1445     hash = (37 * hash) + QUERY_LANGUAGE_CODE_FIELD_NUMBER;
1446     hash = (53 * hash) + getQueryLanguageCode().hashCode();
1447     if (getCompaniesCount() > 0) {
1448       hash = (37 * hash) + COMPANIES_FIELD_NUMBER;
1449       hash = (53 * hash) + getCompaniesList().hashCode();
1450     }
1451     if (getLocationFiltersCount() > 0) {
1452       hash = (37 * hash) + LOCATION_FILTERS_FIELD_NUMBER;
1453       hash = (53 * hash) + getLocationFiltersList().hashCode();
1454     }
1455     if (getJobCategoriesCount() > 0) {
1456       hash = (37 * hash) + JOB_CATEGORIES_FIELD_NUMBER;
1457       hash = (53 * hash) + jobCategories_.hashCode();
1458     }
1459     if (hasCommuteFilter()) {
1460       hash = (37 * hash) + COMMUTE_FILTER_FIELD_NUMBER;
1461       hash = (53 * hash) + getCommuteFilter().hashCode();
1462     }
1463     if (getCompanyDisplayNamesCount() > 0) {
1464       hash = (37 * hash) + COMPANY_DISPLAY_NAMES_FIELD_NUMBER;
1465       hash = (53 * hash) + getCompanyDisplayNamesList().hashCode();
1466     }
1467     if (hasCompensationFilter()) {
1468       hash = (37 * hash) + COMPENSATION_FILTER_FIELD_NUMBER;
1469       hash = (53 * hash) + getCompensationFilter().hashCode();
1470     }
1471     hash = (37 * hash) + CUSTOM_ATTRIBUTE_FILTER_FIELD_NUMBER;
1472     hash = (53 * hash) + getCustomAttributeFilter().hashCode();
1473     hash = (37 * hash) + DISABLE_SPELL_CHECK_FIELD_NUMBER;
1474     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDisableSpellCheck());
1475     if (getEmploymentTypesCount() > 0) {
1476       hash = (37 * hash) + EMPLOYMENT_TYPES_FIELD_NUMBER;
1477       hash = (53 * hash) + employmentTypes_.hashCode();
1478     }
1479     if (getLanguageCodesCount() > 0) {
1480       hash = (37 * hash) + LANGUAGE_CODES_FIELD_NUMBER;
1481       hash = (53 * hash) + getLanguageCodesList().hashCode();
1482     }
1483     if (hasPublishTimeRange()) {
1484       hash = (37 * hash) + PUBLISH_TIME_RANGE_FIELD_NUMBER;
1485       hash = (53 * hash) + getPublishTimeRange().hashCode();
1486     }
1487     if (getExcludedJobsCount() > 0) {
1488       hash = (37 * hash) + EXCLUDED_JOBS_FIELD_NUMBER;
1489       hash = (53 * hash) + getExcludedJobsList().hashCode();
1490     }
1491     hash = (29 * hash) + getUnknownFields().hashCode();
1492     memoizedHashCode = hash;
1493     return hash;
1494   }
1495 
parseFrom(java.nio.ByteBuffer data)1496   public static com.google.cloud.talent.v4.JobQuery parseFrom(java.nio.ByteBuffer data)
1497       throws com.google.protobuf.InvalidProtocolBufferException {
1498     return PARSER.parseFrom(data);
1499   }
1500 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1501   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1502       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1503       throws com.google.protobuf.InvalidProtocolBufferException {
1504     return PARSER.parseFrom(data, extensionRegistry);
1505   }
1506 
parseFrom(com.google.protobuf.ByteString data)1507   public static com.google.cloud.talent.v4.JobQuery parseFrom(com.google.protobuf.ByteString data)
1508       throws com.google.protobuf.InvalidProtocolBufferException {
1509     return PARSER.parseFrom(data);
1510   }
1511 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1512   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1513       com.google.protobuf.ByteString data,
1514       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1515       throws com.google.protobuf.InvalidProtocolBufferException {
1516     return PARSER.parseFrom(data, extensionRegistry);
1517   }
1518 
parseFrom(byte[] data)1519   public static com.google.cloud.talent.v4.JobQuery parseFrom(byte[] data)
1520       throws com.google.protobuf.InvalidProtocolBufferException {
1521     return PARSER.parseFrom(data);
1522   }
1523 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1524   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1525       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1526       throws com.google.protobuf.InvalidProtocolBufferException {
1527     return PARSER.parseFrom(data, extensionRegistry);
1528   }
1529 
parseFrom(java.io.InputStream input)1530   public static com.google.cloud.talent.v4.JobQuery parseFrom(java.io.InputStream input)
1531       throws java.io.IOException {
1532     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
1533   }
1534 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1535   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1536       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1537       throws java.io.IOException {
1538     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
1539         PARSER, input, extensionRegistry);
1540   }
1541 
parseDelimitedFrom(java.io.InputStream input)1542   public static com.google.cloud.talent.v4.JobQuery parseDelimitedFrom(java.io.InputStream input)
1543       throws java.io.IOException {
1544     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
1545   }
1546 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1547   public static com.google.cloud.talent.v4.JobQuery parseDelimitedFrom(
1548       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1549       throws java.io.IOException {
1550     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
1551         PARSER, input, extensionRegistry);
1552   }
1553 
parseFrom( com.google.protobuf.CodedInputStream input)1554   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1555       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
1556     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
1557   }
1558 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1559   public static com.google.cloud.talent.v4.JobQuery parseFrom(
1560       com.google.protobuf.CodedInputStream input,
1561       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1562       throws java.io.IOException {
1563     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
1564         PARSER, input, extensionRegistry);
1565   }
1566 
1567   @java.lang.Override
newBuilderForType()1568   public Builder newBuilderForType() {
1569     return newBuilder();
1570   }
1571 
newBuilder()1572   public static Builder newBuilder() {
1573     return DEFAULT_INSTANCE.toBuilder();
1574   }
1575 
newBuilder(com.google.cloud.talent.v4.JobQuery prototype)1576   public static Builder newBuilder(com.google.cloud.talent.v4.JobQuery prototype) {
1577     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1578   }
1579 
1580   @java.lang.Override
toBuilder()1581   public Builder toBuilder() {
1582     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
1583   }
1584 
1585   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1586   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1587     Builder builder = new Builder(parent);
1588     return builder;
1589   }
1590   /**
1591    *
1592    *
1593    * <pre>
1594    * The query required to perform a search query.
1595    * </pre>
1596    *
1597    * Protobuf type {@code google.cloud.talent.v4.JobQuery}
1598    */
1599   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
1600       implements
1601       // @@protoc_insertion_point(builder_implements:google.cloud.talent.v4.JobQuery)
1602       com.google.cloud.talent.v4.JobQueryOrBuilder {
getDescriptor()1603     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
1604       return com.google.cloud.talent.v4.FiltersProto
1605           .internal_static_google_cloud_talent_v4_JobQuery_descriptor;
1606     }
1607 
1608     @java.lang.Override
1609     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()1610         internalGetFieldAccessorTable() {
1611       return com.google.cloud.talent.v4.FiltersProto
1612           .internal_static_google_cloud_talent_v4_JobQuery_fieldAccessorTable
1613           .ensureFieldAccessorsInitialized(
1614               com.google.cloud.talent.v4.JobQuery.class,
1615               com.google.cloud.talent.v4.JobQuery.Builder.class);
1616     }
1617 
1618     // Construct using com.google.cloud.talent.v4.JobQuery.newBuilder()
Builder()1619     private Builder() {}
1620 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1621     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1622       super(parent);
1623     }
1624 
1625     @java.lang.Override
clear()1626     public Builder clear() {
1627       super.clear();
1628       bitField0_ = 0;
1629       query_ = "";
1630       queryLanguageCode_ = "";
1631       companies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1632       bitField0_ = (bitField0_ & ~0x00000004);
1633       if (locationFiltersBuilder_ == null) {
1634         locationFilters_ = java.util.Collections.emptyList();
1635       } else {
1636         locationFilters_ = null;
1637         locationFiltersBuilder_.clear();
1638       }
1639       bitField0_ = (bitField0_ & ~0x00000008);
1640       jobCategories_ = java.util.Collections.emptyList();
1641       bitField0_ = (bitField0_ & ~0x00000010);
1642       commuteFilter_ = null;
1643       if (commuteFilterBuilder_ != null) {
1644         commuteFilterBuilder_.dispose();
1645         commuteFilterBuilder_ = null;
1646       }
1647       companyDisplayNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1648       bitField0_ = (bitField0_ & ~0x00000040);
1649       compensationFilter_ = null;
1650       if (compensationFilterBuilder_ != null) {
1651         compensationFilterBuilder_.dispose();
1652         compensationFilterBuilder_ = null;
1653       }
1654       customAttributeFilter_ = "";
1655       disableSpellCheck_ = false;
1656       employmentTypes_ = java.util.Collections.emptyList();
1657       bitField0_ = (bitField0_ & ~0x00000400);
1658       languageCodes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1659       bitField0_ = (bitField0_ & ~0x00000800);
1660       publishTimeRange_ = null;
1661       if (publishTimeRangeBuilder_ != null) {
1662         publishTimeRangeBuilder_.dispose();
1663         publishTimeRangeBuilder_ = null;
1664       }
1665       excludedJobs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1666       bitField0_ = (bitField0_ & ~0x00002000);
1667       return this;
1668     }
1669 
1670     @java.lang.Override
getDescriptorForType()1671     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
1672       return com.google.cloud.talent.v4.FiltersProto
1673           .internal_static_google_cloud_talent_v4_JobQuery_descriptor;
1674     }
1675 
1676     @java.lang.Override
getDefaultInstanceForType()1677     public com.google.cloud.talent.v4.JobQuery getDefaultInstanceForType() {
1678       return com.google.cloud.talent.v4.JobQuery.getDefaultInstance();
1679     }
1680 
1681     @java.lang.Override
build()1682     public com.google.cloud.talent.v4.JobQuery build() {
1683       com.google.cloud.talent.v4.JobQuery result = buildPartial();
1684       if (!result.isInitialized()) {
1685         throw newUninitializedMessageException(result);
1686       }
1687       return result;
1688     }
1689 
1690     @java.lang.Override
buildPartial()1691     public com.google.cloud.talent.v4.JobQuery buildPartial() {
1692       com.google.cloud.talent.v4.JobQuery result = new com.google.cloud.talent.v4.JobQuery(this);
1693       buildPartialRepeatedFields(result);
1694       if (bitField0_ != 0) {
1695         buildPartial0(result);
1696       }
1697       onBuilt();
1698       return result;
1699     }
1700 
buildPartialRepeatedFields(com.google.cloud.talent.v4.JobQuery result)1701     private void buildPartialRepeatedFields(com.google.cloud.talent.v4.JobQuery result) {
1702       if (((bitField0_ & 0x00000004) != 0)) {
1703         companies_ = companies_.getUnmodifiableView();
1704         bitField0_ = (bitField0_ & ~0x00000004);
1705       }
1706       result.companies_ = companies_;
1707       if (locationFiltersBuilder_ == null) {
1708         if (((bitField0_ & 0x00000008) != 0)) {
1709           locationFilters_ = java.util.Collections.unmodifiableList(locationFilters_);
1710           bitField0_ = (bitField0_ & ~0x00000008);
1711         }
1712         result.locationFilters_ = locationFilters_;
1713       } else {
1714         result.locationFilters_ = locationFiltersBuilder_.build();
1715       }
1716       if (((bitField0_ & 0x00000010) != 0)) {
1717         jobCategories_ = java.util.Collections.unmodifiableList(jobCategories_);
1718         bitField0_ = (bitField0_ & ~0x00000010);
1719       }
1720       result.jobCategories_ = jobCategories_;
1721       if (((bitField0_ & 0x00000040) != 0)) {
1722         companyDisplayNames_ = companyDisplayNames_.getUnmodifiableView();
1723         bitField0_ = (bitField0_ & ~0x00000040);
1724       }
1725       result.companyDisplayNames_ = companyDisplayNames_;
1726       if (((bitField0_ & 0x00000400) != 0)) {
1727         employmentTypes_ = java.util.Collections.unmodifiableList(employmentTypes_);
1728         bitField0_ = (bitField0_ & ~0x00000400);
1729       }
1730       result.employmentTypes_ = employmentTypes_;
1731       if (((bitField0_ & 0x00000800) != 0)) {
1732         languageCodes_ = languageCodes_.getUnmodifiableView();
1733         bitField0_ = (bitField0_ & ~0x00000800);
1734       }
1735       result.languageCodes_ = languageCodes_;
1736       if (((bitField0_ & 0x00002000) != 0)) {
1737         excludedJobs_ = excludedJobs_.getUnmodifiableView();
1738         bitField0_ = (bitField0_ & ~0x00002000);
1739       }
1740       result.excludedJobs_ = excludedJobs_;
1741     }
1742 
buildPartial0(com.google.cloud.talent.v4.JobQuery result)1743     private void buildPartial0(com.google.cloud.talent.v4.JobQuery result) {
1744       int from_bitField0_ = bitField0_;
1745       if (((from_bitField0_ & 0x00000001) != 0)) {
1746         result.query_ = query_;
1747       }
1748       if (((from_bitField0_ & 0x00000002) != 0)) {
1749         result.queryLanguageCode_ = queryLanguageCode_;
1750       }
1751       if (((from_bitField0_ & 0x00000020) != 0)) {
1752         result.commuteFilter_ =
1753             commuteFilterBuilder_ == null ? commuteFilter_ : commuteFilterBuilder_.build();
1754       }
1755       if (((from_bitField0_ & 0x00000080) != 0)) {
1756         result.compensationFilter_ =
1757             compensationFilterBuilder_ == null
1758                 ? compensationFilter_
1759                 : compensationFilterBuilder_.build();
1760       }
1761       if (((from_bitField0_ & 0x00000100) != 0)) {
1762         result.customAttributeFilter_ = customAttributeFilter_;
1763       }
1764       if (((from_bitField0_ & 0x00000200) != 0)) {
1765         result.disableSpellCheck_ = disableSpellCheck_;
1766       }
1767       if (((from_bitField0_ & 0x00001000) != 0)) {
1768         result.publishTimeRange_ =
1769             publishTimeRangeBuilder_ == null ? publishTimeRange_ : publishTimeRangeBuilder_.build();
1770       }
1771     }
1772 
1773     @java.lang.Override
clone()1774     public Builder clone() {
1775       return super.clone();
1776     }
1777 
1778     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)1779     public Builder setField(
1780         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
1781       return super.setField(field, value);
1782     }
1783 
1784     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)1785     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
1786       return super.clearField(field);
1787     }
1788 
1789     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)1790     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
1791       return super.clearOneof(oneof);
1792     }
1793 
1794     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)1795     public Builder setRepeatedField(
1796         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
1797       return super.setRepeatedField(field, index, value);
1798     }
1799 
1800     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)1801     public Builder addRepeatedField(
1802         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
1803       return super.addRepeatedField(field, value);
1804     }
1805 
1806     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)1807     public Builder mergeFrom(com.google.protobuf.Message other) {
1808       if (other instanceof com.google.cloud.talent.v4.JobQuery) {
1809         return mergeFrom((com.google.cloud.talent.v4.JobQuery) other);
1810       } else {
1811         super.mergeFrom(other);
1812         return this;
1813       }
1814     }
1815 
mergeFrom(com.google.cloud.talent.v4.JobQuery other)1816     public Builder mergeFrom(com.google.cloud.talent.v4.JobQuery other) {
1817       if (other == com.google.cloud.talent.v4.JobQuery.getDefaultInstance()) return this;
1818       if (!other.getQuery().isEmpty()) {
1819         query_ = other.query_;
1820         bitField0_ |= 0x00000001;
1821         onChanged();
1822       }
1823       if (!other.getQueryLanguageCode().isEmpty()) {
1824         queryLanguageCode_ = other.queryLanguageCode_;
1825         bitField0_ |= 0x00000002;
1826         onChanged();
1827       }
1828       if (!other.companies_.isEmpty()) {
1829         if (companies_.isEmpty()) {
1830           companies_ = other.companies_;
1831           bitField0_ = (bitField0_ & ~0x00000004);
1832         } else {
1833           ensureCompaniesIsMutable();
1834           companies_.addAll(other.companies_);
1835         }
1836         onChanged();
1837       }
1838       if (locationFiltersBuilder_ == null) {
1839         if (!other.locationFilters_.isEmpty()) {
1840           if (locationFilters_.isEmpty()) {
1841             locationFilters_ = other.locationFilters_;
1842             bitField0_ = (bitField0_ & ~0x00000008);
1843           } else {
1844             ensureLocationFiltersIsMutable();
1845             locationFilters_.addAll(other.locationFilters_);
1846           }
1847           onChanged();
1848         }
1849       } else {
1850         if (!other.locationFilters_.isEmpty()) {
1851           if (locationFiltersBuilder_.isEmpty()) {
1852             locationFiltersBuilder_.dispose();
1853             locationFiltersBuilder_ = null;
1854             locationFilters_ = other.locationFilters_;
1855             bitField0_ = (bitField0_ & ~0x00000008);
1856             locationFiltersBuilder_ =
1857                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
1858                     ? getLocationFiltersFieldBuilder()
1859                     : null;
1860           } else {
1861             locationFiltersBuilder_.addAllMessages(other.locationFilters_);
1862           }
1863         }
1864       }
1865       if (!other.jobCategories_.isEmpty()) {
1866         if (jobCategories_.isEmpty()) {
1867           jobCategories_ = other.jobCategories_;
1868           bitField0_ = (bitField0_ & ~0x00000010);
1869         } else {
1870           ensureJobCategoriesIsMutable();
1871           jobCategories_.addAll(other.jobCategories_);
1872         }
1873         onChanged();
1874       }
1875       if (other.hasCommuteFilter()) {
1876         mergeCommuteFilter(other.getCommuteFilter());
1877       }
1878       if (!other.companyDisplayNames_.isEmpty()) {
1879         if (companyDisplayNames_.isEmpty()) {
1880           companyDisplayNames_ = other.companyDisplayNames_;
1881           bitField0_ = (bitField0_ & ~0x00000040);
1882         } else {
1883           ensureCompanyDisplayNamesIsMutable();
1884           companyDisplayNames_.addAll(other.companyDisplayNames_);
1885         }
1886         onChanged();
1887       }
1888       if (other.hasCompensationFilter()) {
1889         mergeCompensationFilter(other.getCompensationFilter());
1890       }
1891       if (!other.getCustomAttributeFilter().isEmpty()) {
1892         customAttributeFilter_ = other.customAttributeFilter_;
1893         bitField0_ |= 0x00000100;
1894         onChanged();
1895       }
1896       if (other.getDisableSpellCheck() != false) {
1897         setDisableSpellCheck(other.getDisableSpellCheck());
1898       }
1899       if (!other.employmentTypes_.isEmpty()) {
1900         if (employmentTypes_.isEmpty()) {
1901           employmentTypes_ = other.employmentTypes_;
1902           bitField0_ = (bitField0_ & ~0x00000400);
1903         } else {
1904           ensureEmploymentTypesIsMutable();
1905           employmentTypes_.addAll(other.employmentTypes_);
1906         }
1907         onChanged();
1908       }
1909       if (!other.languageCodes_.isEmpty()) {
1910         if (languageCodes_.isEmpty()) {
1911           languageCodes_ = other.languageCodes_;
1912           bitField0_ = (bitField0_ & ~0x00000800);
1913         } else {
1914           ensureLanguageCodesIsMutable();
1915           languageCodes_.addAll(other.languageCodes_);
1916         }
1917         onChanged();
1918       }
1919       if (other.hasPublishTimeRange()) {
1920         mergePublishTimeRange(other.getPublishTimeRange());
1921       }
1922       if (!other.excludedJobs_.isEmpty()) {
1923         if (excludedJobs_.isEmpty()) {
1924           excludedJobs_ = other.excludedJobs_;
1925           bitField0_ = (bitField0_ & ~0x00002000);
1926         } else {
1927           ensureExcludedJobsIsMutable();
1928           excludedJobs_.addAll(other.excludedJobs_);
1929         }
1930         onChanged();
1931       }
1932       this.mergeUnknownFields(other.getUnknownFields());
1933       onChanged();
1934       return this;
1935     }
1936 
1937     @java.lang.Override
isInitialized()1938     public final boolean isInitialized() {
1939       return true;
1940     }
1941 
1942     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1943     public Builder mergeFrom(
1944         com.google.protobuf.CodedInputStream input,
1945         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1946         throws java.io.IOException {
1947       if (extensionRegistry == null) {
1948         throw new java.lang.NullPointerException();
1949       }
1950       try {
1951         boolean done = false;
1952         while (!done) {
1953           int tag = input.readTag();
1954           switch (tag) {
1955             case 0:
1956               done = true;
1957               break;
1958             case 10:
1959               {
1960                 query_ = input.readStringRequireUtf8();
1961                 bitField0_ |= 0x00000001;
1962                 break;
1963               } // case 10
1964             case 18:
1965               {
1966                 java.lang.String s = input.readStringRequireUtf8();
1967                 ensureCompaniesIsMutable();
1968                 companies_.add(s);
1969                 break;
1970               } // case 18
1971             case 26:
1972               {
1973                 com.google.cloud.talent.v4.LocationFilter m =
1974                     input.readMessage(
1975                         com.google.cloud.talent.v4.LocationFilter.parser(), extensionRegistry);
1976                 if (locationFiltersBuilder_ == null) {
1977                   ensureLocationFiltersIsMutable();
1978                   locationFilters_.add(m);
1979                 } else {
1980                   locationFiltersBuilder_.addMessage(m);
1981                 }
1982                 break;
1983               } // case 26
1984             case 32:
1985               {
1986                 int tmpRaw = input.readEnum();
1987                 ensureJobCategoriesIsMutable();
1988                 jobCategories_.add(tmpRaw);
1989                 break;
1990               } // case 32
1991             case 34:
1992               {
1993                 int length = input.readRawVarint32();
1994                 int oldLimit = input.pushLimit(length);
1995                 while (input.getBytesUntilLimit() > 0) {
1996                   int tmpRaw = input.readEnum();
1997                   ensureJobCategoriesIsMutable();
1998                   jobCategories_.add(tmpRaw);
1999                 }
2000                 input.popLimit(oldLimit);
2001                 break;
2002               } // case 34
2003             case 42:
2004               {
2005                 input.readMessage(getCommuteFilterFieldBuilder().getBuilder(), extensionRegistry);
2006                 bitField0_ |= 0x00000020;
2007                 break;
2008               } // case 42
2009             case 50:
2010               {
2011                 java.lang.String s = input.readStringRequireUtf8();
2012                 ensureCompanyDisplayNamesIsMutable();
2013                 companyDisplayNames_.add(s);
2014                 break;
2015               } // case 50
2016             case 58:
2017               {
2018                 input.readMessage(
2019                     getCompensationFilterFieldBuilder().getBuilder(), extensionRegistry);
2020                 bitField0_ |= 0x00000080;
2021                 break;
2022               } // case 58
2023             case 66:
2024               {
2025                 customAttributeFilter_ = input.readStringRequireUtf8();
2026                 bitField0_ |= 0x00000100;
2027                 break;
2028               } // case 66
2029             case 72:
2030               {
2031                 disableSpellCheck_ = input.readBool();
2032                 bitField0_ |= 0x00000200;
2033                 break;
2034               } // case 72
2035             case 80:
2036               {
2037                 int tmpRaw = input.readEnum();
2038                 ensureEmploymentTypesIsMutable();
2039                 employmentTypes_.add(tmpRaw);
2040                 break;
2041               } // case 80
2042             case 82:
2043               {
2044                 int length = input.readRawVarint32();
2045                 int oldLimit = input.pushLimit(length);
2046                 while (input.getBytesUntilLimit() > 0) {
2047                   int tmpRaw = input.readEnum();
2048                   ensureEmploymentTypesIsMutable();
2049                   employmentTypes_.add(tmpRaw);
2050                 }
2051                 input.popLimit(oldLimit);
2052                 break;
2053               } // case 82
2054             case 90:
2055               {
2056                 java.lang.String s = input.readStringRequireUtf8();
2057                 ensureLanguageCodesIsMutable();
2058                 languageCodes_.add(s);
2059                 break;
2060               } // case 90
2061             case 98:
2062               {
2063                 input.readMessage(
2064                     getPublishTimeRangeFieldBuilder().getBuilder(), extensionRegistry);
2065                 bitField0_ |= 0x00001000;
2066                 break;
2067               } // case 98
2068             case 106:
2069               {
2070                 java.lang.String s = input.readStringRequireUtf8();
2071                 ensureExcludedJobsIsMutable();
2072                 excludedJobs_.add(s);
2073                 break;
2074               } // case 106
2075             case 114:
2076               {
2077                 queryLanguageCode_ = input.readStringRequireUtf8();
2078                 bitField0_ |= 0x00000002;
2079                 break;
2080               } // case 114
2081             default:
2082               {
2083                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2084                   done = true; // was an endgroup tag
2085                 }
2086                 break;
2087               } // default:
2088           } // switch (tag)
2089         } // while (!done)
2090       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2091         throw e.unwrapIOException();
2092       } finally {
2093         onChanged();
2094       } // finally
2095       return this;
2096     }
2097 
2098     private int bitField0_;
2099 
2100     private java.lang.Object query_ = "";
2101     /**
2102      *
2103      *
2104      * <pre>
2105      * The query string that matches against the job title, description, and
2106      * location fields.
2107      * The maximum number of allowed characters is 255.
2108      * </pre>
2109      *
2110      * <code>string query = 1;</code>
2111      *
2112      * @return The query.
2113      */
getQuery()2114     public java.lang.String getQuery() {
2115       java.lang.Object ref = query_;
2116       if (!(ref instanceof java.lang.String)) {
2117         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2118         java.lang.String s = bs.toStringUtf8();
2119         query_ = s;
2120         return s;
2121       } else {
2122         return (java.lang.String) ref;
2123       }
2124     }
2125     /**
2126      *
2127      *
2128      * <pre>
2129      * The query string that matches against the job title, description, and
2130      * location fields.
2131      * The maximum number of allowed characters is 255.
2132      * </pre>
2133      *
2134      * <code>string query = 1;</code>
2135      *
2136      * @return The bytes for query.
2137      */
getQueryBytes()2138     public com.google.protobuf.ByteString getQueryBytes() {
2139       java.lang.Object ref = query_;
2140       if (ref instanceof String) {
2141         com.google.protobuf.ByteString b =
2142             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2143         query_ = b;
2144         return b;
2145       } else {
2146         return (com.google.protobuf.ByteString) ref;
2147       }
2148     }
2149     /**
2150      *
2151      *
2152      * <pre>
2153      * The query string that matches against the job title, description, and
2154      * location fields.
2155      * The maximum number of allowed characters is 255.
2156      * </pre>
2157      *
2158      * <code>string query = 1;</code>
2159      *
2160      * @param value The query to set.
2161      * @return This builder for chaining.
2162      */
setQuery(java.lang.String value)2163     public Builder setQuery(java.lang.String value) {
2164       if (value == null) {
2165         throw new NullPointerException();
2166       }
2167       query_ = value;
2168       bitField0_ |= 0x00000001;
2169       onChanged();
2170       return this;
2171     }
2172     /**
2173      *
2174      *
2175      * <pre>
2176      * The query string that matches against the job title, description, and
2177      * location fields.
2178      * The maximum number of allowed characters is 255.
2179      * </pre>
2180      *
2181      * <code>string query = 1;</code>
2182      *
2183      * @return This builder for chaining.
2184      */
clearQuery()2185     public Builder clearQuery() {
2186       query_ = getDefaultInstance().getQuery();
2187       bitField0_ = (bitField0_ & ~0x00000001);
2188       onChanged();
2189       return this;
2190     }
2191     /**
2192      *
2193      *
2194      * <pre>
2195      * The query string that matches against the job title, description, and
2196      * location fields.
2197      * The maximum number of allowed characters is 255.
2198      * </pre>
2199      *
2200      * <code>string query = 1;</code>
2201      *
2202      * @param value The bytes for query to set.
2203      * @return This builder for chaining.
2204      */
setQueryBytes(com.google.protobuf.ByteString value)2205     public Builder setQueryBytes(com.google.protobuf.ByteString value) {
2206       if (value == null) {
2207         throw new NullPointerException();
2208       }
2209       checkByteStringIsUtf8(value);
2210       query_ = value;
2211       bitField0_ |= 0x00000001;
2212       onChanged();
2213       return this;
2214     }
2215 
2216     private java.lang.Object queryLanguageCode_ = "";
2217     /**
2218      *
2219      *
2220      * <pre>
2221      * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
2222      * example, "en-US". This field helps to better interpret the query.
2223      * If a value isn't specified, the query language code is automatically
2224      * detected, which may not be accurate.
2225      * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
2226      * For more information, see
2227      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
2228      * </pre>
2229      *
2230      * <code>string query_language_code = 14;</code>
2231      *
2232      * @return The queryLanguageCode.
2233      */
getQueryLanguageCode()2234     public java.lang.String getQueryLanguageCode() {
2235       java.lang.Object ref = queryLanguageCode_;
2236       if (!(ref instanceof java.lang.String)) {
2237         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2238         java.lang.String s = bs.toStringUtf8();
2239         queryLanguageCode_ = s;
2240         return s;
2241       } else {
2242         return (java.lang.String) ref;
2243       }
2244     }
2245     /**
2246      *
2247      *
2248      * <pre>
2249      * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
2250      * example, "en-US". This field helps to better interpret the query.
2251      * If a value isn't specified, the query language code is automatically
2252      * detected, which may not be accurate.
2253      * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
2254      * For more information, see
2255      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
2256      * </pre>
2257      *
2258      * <code>string query_language_code = 14;</code>
2259      *
2260      * @return The bytes for queryLanguageCode.
2261      */
getQueryLanguageCodeBytes()2262     public com.google.protobuf.ByteString getQueryLanguageCodeBytes() {
2263       java.lang.Object ref = queryLanguageCode_;
2264       if (ref instanceof String) {
2265         com.google.protobuf.ByteString b =
2266             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2267         queryLanguageCode_ = b;
2268         return b;
2269       } else {
2270         return (com.google.protobuf.ByteString) ref;
2271       }
2272     }
2273     /**
2274      *
2275      *
2276      * <pre>
2277      * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
2278      * example, "en-US". This field helps to better interpret the query.
2279      * If a value isn't specified, the query language code is automatically
2280      * detected, which may not be accurate.
2281      * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
2282      * For more information, see
2283      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
2284      * </pre>
2285      *
2286      * <code>string query_language_code = 14;</code>
2287      *
2288      * @param value The queryLanguageCode to set.
2289      * @return This builder for chaining.
2290      */
setQueryLanguageCode(java.lang.String value)2291     public Builder setQueryLanguageCode(java.lang.String value) {
2292       if (value == null) {
2293         throw new NullPointerException();
2294       }
2295       queryLanguageCode_ = value;
2296       bitField0_ |= 0x00000002;
2297       onChanged();
2298       return this;
2299     }
2300     /**
2301      *
2302      *
2303      * <pre>
2304      * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
2305      * example, "en-US". This field helps to better interpret the query.
2306      * If a value isn't specified, the query language code is automatically
2307      * detected, which may not be accurate.
2308      * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
2309      * For more information, see
2310      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
2311      * </pre>
2312      *
2313      * <code>string query_language_code = 14;</code>
2314      *
2315      * @return This builder for chaining.
2316      */
clearQueryLanguageCode()2317     public Builder clearQueryLanguageCode() {
2318       queryLanguageCode_ = getDefaultInstance().getQueryLanguageCode();
2319       bitField0_ = (bitField0_ & ~0x00000002);
2320       onChanged();
2321       return this;
2322     }
2323     /**
2324      *
2325      *
2326      * <pre>
2327      * The language code of [query][google.cloud.talent.v4.JobQuery.query]. For
2328      * example, "en-US". This field helps to better interpret the query.
2329      * If a value isn't specified, the query language code is automatically
2330      * detected, which may not be accurate.
2331      * Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
2332      * For more information, see
2333      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
2334      * </pre>
2335      *
2336      * <code>string query_language_code = 14;</code>
2337      *
2338      * @param value The bytes for queryLanguageCode to set.
2339      * @return This builder for chaining.
2340      */
setQueryLanguageCodeBytes(com.google.protobuf.ByteString value)2341     public Builder setQueryLanguageCodeBytes(com.google.protobuf.ByteString value) {
2342       if (value == null) {
2343         throw new NullPointerException();
2344       }
2345       checkByteStringIsUtf8(value);
2346       queryLanguageCode_ = value;
2347       bitField0_ |= 0x00000002;
2348       onChanged();
2349       return this;
2350     }
2351 
2352     private com.google.protobuf.LazyStringList companies_ =
2353         com.google.protobuf.LazyStringArrayList.EMPTY;
2354 
ensureCompaniesIsMutable()2355     private void ensureCompaniesIsMutable() {
2356       if (!((bitField0_ & 0x00000004) != 0)) {
2357         companies_ = new com.google.protobuf.LazyStringArrayList(companies_);
2358         bitField0_ |= 0x00000004;
2359       }
2360     }
2361     /**
2362      *
2363      *
2364      * <pre>
2365      * This filter specifies the company entities to search against.
2366      * If a value isn't specified, jobs are searched for against all
2367      * companies.
2368      * If multiple values are specified, jobs are searched against the
2369      * companies specified.
2370      * The format is
2371      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2372      * example, "projects/foo/tenants/bar/companies/baz".
2373      * At most 20 company filters are allowed.
2374      * </pre>
2375      *
2376      * <code>repeated string companies = 2;</code>
2377      *
2378      * @return A list containing the companies.
2379      */
getCompaniesList()2380     public com.google.protobuf.ProtocolStringList getCompaniesList() {
2381       return companies_.getUnmodifiableView();
2382     }
2383     /**
2384      *
2385      *
2386      * <pre>
2387      * This filter specifies the company entities to search against.
2388      * If a value isn't specified, jobs are searched for against all
2389      * companies.
2390      * If multiple values are specified, jobs are searched against the
2391      * companies specified.
2392      * The format is
2393      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2394      * example, "projects/foo/tenants/bar/companies/baz".
2395      * At most 20 company filters are allowed.
2396      * </pre>
2397      *
2398      * <code>repeated string companies = 2;</code>
2399      *
2400      * @return The count of companies.
2401      */
getCompaniesCount()2402     public int getCompaniesCount() {
2403       return companies_.size();
2404     }
2405     /**
2406      *
2407      *
2408      * <pre>
2409      * This filter specifies the company entities to search against.
2410      * If a value isn't specified, jobs are searched for against all
2411      * companies.
2412      * If multiple values are specified, jobs are searched against the
2413      * companies specified.
2414      * The format is
2415      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2416      * example, "projects/foo/tenants/bar/companies/baz".
2417      * At most 20 company filters are allowed.
2418      * </pre>
2419      *
2420      * <code>repeated string companies = 2;</code>
2421      *
2422      * @param index The index of the element to return.
2423      * @return The companies at the given index.
2424      */
getCompanies(int index)2425     public java.lang.String getCompanies(int index) {
2426       return companies_.get(index);
2427     }
2428     /**
2429      *
2430      *
2431      * <pre>
2432      * This filter specifies the company entities to search against.
2433      * If a value isn't specified, jobs are searched for against all
2434      * companies.
2435      * If multiple values are specified, jobs are searched against the
2436      * companies specified.
2437      * The format is
2438      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2439      * example, "projects/foo/tenants/bar/companies/baz".
2440      * At most 20 company filters are allowed.
2441      * </pre>
2442      *
2443      * <code>repeated string companies = 2;</code>
2444      *
2445      * @param index The index of the value to return.
2446      * @return The bytes of the companies at the given index.
2447      */
getCompaniesBytes(int index)2448     public com.google.protobuf.ByteString getCompaniesBytes(int index) {
2449       return companies_.getByteString(index);
2450     }
2451     /**
2452      *
2453      *
2454      * <pre>
2455      * This filter specifies the company entities to search against.
2456      * If a value isn't specified, jobs are searched for against all
2457      * companies.
2458      * If multiple values are specified, jobs are searched against the
2459      * companies specified.
2460      * The format is
2461      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2462      * example, "projects/foo/tenants/bar/companies/baz".
2463      * At most 20 company filters are allowed.
2464      * </pre>
2465      *
2466      * <code>repeated string companies = 2;</code>
2467      *
2468      * @param index The index to set the value at.
2469      * @param value The companies to set.
2470      * @return This builder for chaining.
2471      */
setCompanies(int index, java.lang.String value)2472     public Builder setCompanies(int index, java.lang.String value) {
2473       if (value == null) {
2474         throw new NullPointerException();
2475       }
2476       ensureCompaniesIsMutable();
2477       companies_.set(index, value);
2478       onChanged();
2479       return this;
2480     }
2481     /**
2482      *
2483      *
2484      * <pre>
2485      * This filter specifies the company entities to search against.
2486      * If a value isn't specified, jobs are searched for against all
2487      * companies.
2488      * If multiple values are specified, jobs are searched against the
2489      * companies specified.
2490      * The format is
2491      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2492      * example, "projects/foo/tenants/bar/companies/baz".
2493      * At most 20 company filters are allowed.
2494      * </pre>
2495      *
2496      * <code>repeated string companies = 2;</code>
2497      *
2498      * @param value The companies to add.
2499      * @return This builder for chaining.
2500      */
addCompanies(java.lang.String value)2501     public Builder addCompanies(java.lang.String value) {
2502       if (value == null) {
2503         throw new NullPointerException();
2504       }
2505       ensureCompaniesIsMutable();
2506       companies_.add(value);
2507       onChanged();
2508       return this;
2509     }
2510     /**
2511      *
2512      *
2513      * <pre>
2514      * This filter specifies the company entities to search against.
2515      * If a value isn't specified, jobs are searched for against all
2516      * companies.
2517      * If multiple values are specified, jobs are searched against the
2518      * companies specified.
2519      * The format is
2520      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2521      * example, "projects/foo/tenants/bar/companies/baz".
2522      * At most 20 company filters are allowed.
2523      * </pre>
2524      *
2525      * <code>repeated string companies = 2;</code>
2526      *
2527      * @param values The companies to add.
2528      * @return This builder for chaining.
2529      */
addAllCompanies(java.lang.Iterable<java.lang.String> values)2530     public Builder addAllCompanies(java.lang.Iterable<java.lang.String> values) {
2531       ensureCompaniesIsMutable();
2532       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, companies_);
2533       onChanged();
2534       return this;
2535     }
2536     /**
2537      *
2538      *
2539      * <pre>
2540      * This filter specifies the company entities to search against.
2541      * If a value isn't specified, jobs are searched for against all
2542      * companies.
2543      * If multiple values are specified, jobs are searched against the
2544      * companies specified.
2545      * The format is
2546      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2547      * example, "projects/foo/tenants/bar/companies/baz".
2548      * At most 20 company filters are allowed.
2549      * </pre>
2550      *
2551      * <code>repeated string companies = 2;</code>
2552      *
2553      * @return This builder for chaining.
2554      */
clearCompanies()2555     public Builder clearCompanies() {
2556       companies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
2557       bitField0_ = (bitField0_ & ~0x00000004);
2558       onChanged();
2559       return this;
2560     }
2561     /**
2562      *
2563      *
2564      * <pre>
2565      * This filter specifies the company entities to search against.
2566      * If a value isn't specified, jobs are searched for against all
2567      * companies.
2568      * If multiple values are specified, jobs are searched against the
2569      * companies specified.
2570      * The format is
2571      * "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
2572      * example, "projects/foo/tenants/bar/companies/baz".
2573      * At most 20 company filters are allowed.
2574      * </pre>
2575      *
2576      * <code>repeated string companies = 2;</code>
2577      *
2578      * @param value The bytes of the companies to add.
2579      * @return This builder for chaining.
2580      */
addCompaniesBytes(com.google.protobuf.ByteString value)2581     public Builder addCompaniesBytes(com.google.protobuf.ByteString value) {
2582       if (value == null) {
2583         throw new NullPointerException();
2584       }
2585       checkByteStringIsUtf8(value);
2586       ensureCompaniesIsMutable();
2587       companies_.add(value);
2588       onChanged();
2589       return this;
2590     }
2591 
2592     private java.util.List<com.google.cloud.talent.v4.LocationFilter> locationFilters_ =
2593         java.util.Collections.emptyList();
2594 
ensureLocationFiltersIsMutable()2595     private void ensureLocationFiltersIsMutable() {
2596       if (!((bitField0_ & 0x00000008) != 0)) {
2597         locationFilters_ =
2598             new java.util.ArrayList<com.google.cloud.talent.v4.LocationFilter>(locationFilters_);
2599         bitField0_ |= 0x00000008;
2600       }
2601     }
2602 
2603     private com.google.protobuf.RepeatedFieldBuilderV3<
2604             com.google.cloud.talent.v4.LocationFilter,
2605             com.google.cloud.talent.v4.LocationFilter.Builder,
2606             com.google.cloud.talent.v4.LocationFilterOrBuilder>
2607         locationFiltersBuilder_;
2608 
2609     /**
2610      *
2611      *
2612      * <pre>
2613      * The location filter specifies geo-regions containing the jobs to
2614      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2615      * for more information.
2616      * If a location value isn't specified, jobs fitting the other search
2617      * criteria are retrieved regardless of where they're located.
2618      * If multiple values are specified, jobs are retrieved from any of the
2619      * specified locations. If different values are specified for the
2620      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2621      * parameter, the maximum provided distance is used for all locations.
2622      * At most 5 location filters are allowed.
2623      * </pre>
2624      *
2625      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2626      */
getLocationFiltersList()2627     public java.util.List<com.google.cloud.talent.v4.LocationFilter> getLocationFiltersList() {
2628       if (locationFiltersBuilder_ == null) {
2629         return java.util.Collections.unmodifiableList(locationFilters_);
2630       } else {
2631         return locationFiltersBuilder_.getMessageList();
2632       }
2633     }
2634     /**
2635      *
2636      *
2637      * <pre>
2638      * The location filter specifies geo-regions containing the jobs to
2639      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2640      * for more information.
2641      * If a location value isn't specified, jobs fitting the other search
2642      * criteria are retrieved regardless of where they're located.
2643      * If multiple values are specified, jobs are retrieved from any of the
2644      * specified locations. If different values are specified for the
2645      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2646      * parameter, the maximum provided distance is used for all locations.
2647      * At most 5 location filters are allowed.
2648      * </pre>
2649      *
2650      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2651      */
getLocationFiltersCount()2652     public int getLocationFiltersCount() {
2653       if (locationFiltersBuilder_ == null) {
2654         return locationFilters_.size();
2655       } else {
2656         return locationFiltersBuilder_.getCount();
2657       }
2658     }
2659     /**
2660      *
2661      *
2662      * <pre>
2663      * The location filter specifies geo-regions containing the jobs to
2664      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2665      * for more information.
2666      * If a location value isn't specified, jobs fitting the other search
2667      * criteria are retrieved regardless of where they're located.
2668      * If multiple values are specified, jobs are retrieved from any of the
2669      * specified locations. If different values are specified for the
2670      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2671      * parameter, the maximum provided distance is used for all locations.
2672      * At most 5 location filters are allowed.
2673      * </pre>
2674      *
2675      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2676      */
getLocationFilters(int index)2677     public com.google.cloud.talent.v4.LocationFilter getLocationFilters(int index) {
2678       if (locationFiltersBuilder_ == null) {
2679         return locationFilters_.get(index);
2680       } else {
2681         return locationFiltersBuilder_.getMessage(index);
2682       }
2683     }
2684     /**
2685      *
2686      *
2687      * <pre>
2688      * The location filter specifies geo-regions containing the jobs to
2689      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2690      * for more information.
2691      * If a location value isn't specified, jobs fitting the other search
2692      * criteria are retrieved regardless of where they're located.
2693      * If multiple values are specified, jobs are retrieved from any of the
2694      * specified locations. If different values are specified for the
2695      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2696      * parameter, the maximum provided distance is used for all locations.
2697      * At most 5 location filters are allowed.
2698      * </pre>
2699      *
2700      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2701      */
setLocationFilters(int index, com.google.cloud.talent.v4.LocationFilter value)2702     public Builder setLocationFilters(int index, com.google.cloud.talent.v4.LocationFilter value) {
2703       if (locationFiltersBuilder_ == null) {
2704         if (value == null) {
2705           throw new NullPointerException();
2706         }
2707         ensureLocationFiltersIsMutable();
2708         locationFilters_.set(index, value);
2709         onChanged();
2710       } else {
2711         locationFiltersBuilder_.setMessage(index, value);
2712       }
2713       return this;
2714     }
2715     /**
2716      *
2717      *
2718      * <pre>
2719      * The location filter specifies geo-regions containing the jobs to
2720      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2721      * for more information.
2722      * If a location value isn't specified, jobs fitting the other search
2723      * criteria are retrieved regardless of where they're located.
2724      * If multiple values are specified, jobs are retrieved from any of the
2725      * specified locations. If different values are specified for the
2726      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2727      * parameter, the maximum provided distance is used for all locations.
2728      * At most 5 location filters are allowed.
2729      * </pre>
2730      *
2731      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2732      */
setLocationFilters( int index, com.google.cloud.talent.v4.LocationFilter.Builder builderForValue)2733     public Builder setLocationFilters(
2734         int index, com.google.cloud.talent.v4.LocationFilter.Builder builderForValue) {
2735       if (locationFiltersBuilder_ == null) {
2736         ensureLocationFiltersIsMutable();
2737         locationFilters_.set(index, builderForValue.build());
2738         onChanged();
2739       } else {
2740         locationFiltersBuilder_.setMessage(index, builderForValue.build());
2741       }
2742       return this;
2743     }
2744     /**
2745      *
2746      *
2747      * <pre>
2748      * The location filter specifies geo-regions containing the jobs to
2749      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2750      * for more information.
2751      * If a location value isn't specified, jobs fitting the other search
2752      * criteria are retrieved regardless of where they're located.
2753      * If multiple values are specified, jobs are retrieved from any of the
2754      * specified locations. If different values are specified for the
2755      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2756      * parameter, the maximum provided distance is used for all locations.
2757      * At most 5 location filters are allowed.
2758      * </pre>
2759      *
2760      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2761      */
addLocationFilters(com.google.cloud.talent.v4.LocationFilter value)2762     public Builder addLocationFilters(com.google.cloud.talent.v4.LocationFilter value) {
2763       if (locationFiltersBuilder_ == null) {
2764         if (value == null) {
2765           throw new NullPointerException();
2766         }
2767         ensureLocationFiltersIsMutable();
2768         locationFilters_.add(value);
2769         onChanged();
2770       } else {
2771         locationFiltersBuilder_.addMessage(value);
2772       }
2773       return this;
2774     }
2775     /**
2776      *
2777      *
2778      * <pre>
2779      * The location filter specifies geo-regions containing the jobs to
2780      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2781      * for more information.
2782      * If a location value isn't specified, jobs fitting the other search
2783      * criteria are retrieved regardless of where they're located.
2784      * If multiple values are specified, jobs are retrieved from any of the
2785      * specified locations. If different values are specified for the
2786      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2787      * parameter, the maximum provided distance is used for all locations.
2788      * At most 5 location filters are allowed.
2789      * </pre>
2790      *
2791      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2792      */
addLocationFilters(int index, com.google.cloud.talent.v4.LocationFilter value)2793     public Builder addLocationFilters(int index, com.google.cloud.talent.v4.LocationFilter value) {
2794       if (locationFiltersBuilder_ == null) {
2795         if (value == null) {
2796           throw new NullPointerException();
2797         }
2798         ensureLocationFiltersIsMutable();
2799         locationFilters_.add(index, value);
2800         onChanged();
2801       } else {
2802         locationFiltersBuilder_.addMessage(index, value);
2803       }
2804       return this;
2805     }
2806     /**
2807      *
2808      *
2809      * <pre>
2810      * The location filter specifies geo-regions containing the jobs to
2811      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2812      * for more information.
2813      * If a location value isn't specified, jobs fitting the other search
2814      * criteria are retrieved regardless of where they're located.
2815      * If multiple values are specified, jobs are retrieved from any of the
2816      * specified locations. If different values are specified for the
2817      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2818      * parameter, the maximum provided distance is used for all locations.
2819      * At most 5 location filters are allowed.
2820      * </pre>
2821      *
2822      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2823      */
addLocationFilters( com.google.cloud.talent.v4.LocationFilter.Builder builderForValue)2824     public Builder addLocationFilters(
2825         com.google.cloud.talent.v4.LocationFilter.Builder builderForValue) {
2826       if (locationFiltersBuilder_ == null) {
2827         ensureLocationFiltersIsMutable();
2828         locationFilters_.add(builderForValue.build());
2829         onChanged();
2830       } else {
2831         locationFiltersBuilder_.addMessage(builderForValue.build());
2832       }
2833       return this;
2834     }
2835     /**
2836      *
2837      *
2838      * <pre>
2839      * The location filter specifies geo-regions containing the jobs to
2840      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2841      * for more information.
2842      * If a location value isn't specified, jobs fitting the other search
2843      * criteria are retrieved regardless of where they're located.
2844      * If multiple values are specified, jobs are retrieved from any of the
2845      * specified locations. If different values are specified for the
2846      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2847      * parameter, the maximum provided distance is used for all locations.
2848      * At most 5 location filters are allowed.
2849      * </pre>
2850      *
2851      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2852      */
addLocationFilters( int index, com.google.cloud.talent.v4.LocationFilter.Builder builderForValue)2853     public Builder addLocationFilters(
2854         int index, com.google.cloud.talent.v4.LocationFilter.Builder builderForValue) {
2855       if (locationFiltersBuilder_ == null) {
2856         ensureLocationFiltersIsMutable();
2857         locationFilters_.add(index, builderForValue.build());
2858         onChanged();
2859       } else {
2860         locationFiltersBuilder_.addMessage(index, builderForValue.build());
2861       }
2862       return this;
2863     }
2864     /**
2865      *
2866      *
2867      * <pre>
2868      * The location filter specifies geo-regions containing the jobs to
2869      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2870      * for more information.
2871      * If a location value isn't specified, jobs fitting the other search
2872      * criteria are retrieved regardless of where they're located.
2873      * If multiple values are specified, jobs are retrieved from any of the
2874      * specified locations. If different values are specified for the
2875      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2876      * parameter, the maximum provided distance is used for all locations.
2877      * At most 5 location filters are allowed.
2878      * </pre>
2879      *
2880      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2881      */
addAllLocationFilters( java.lang.Iterable<? extends com.google.cloud.talent.v4.LocationFilter> values)2882     public Builder addAllLocationFilters(
2883         java.lang.Iterable<? extends com.google.cloud.talent.v4.LocationFilter> values) {
2884       if (locationFiltersBuilder_ == null) {
2885         ensureLocationFiltersIsMutable();
2886         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, locationFilters_);
2887         onChanged();
2888       } else {
2889         locationFiltersBuilder_.addAllMessages(values);
2890       }
2891       return this;
2892     }
2893     /**
2894      *
2895      *
2896      * <pre>
2897      * The location filter specifies geo-regions containing the jobs to
2898      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2899      * for more information.
2900      * If a location value isn't specified, jobs fitting the other search
2901      * criteria are retrieved regardless of where they're located.
2902      * If multiple values are specified, jobs are retrieved from any of the
2903      * specified locations. If different values are specified for the
2904      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2905      * parameter, the maximum provided distance is used for all locations.
2906      * At most 5 location filters are allowed.
2907      * </pre>
2908      *
2909      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2910      */
clearLocationFilters()2911     public Builder clearLocationFilters() {
2912       if (locationFiltersBuilder_ == null) {
2913         locationFilters_ = java.util.Collections.emptyList();
2914         bitField0_ = (bitField0_ & ~0x00000008);
2915         onChanged();
2916       } else {
2917         locationFiltersBuilder_.clear();
2918       }
2919       return this;
2920     }
2921     /**
2922      *
2923      *
2924      * <pre>
2925      * The location filter specifies geo-regions containing the jobs to
2926      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2927      * for more information.
2928      * If a location value isn't specified, jobs fitting the other search
2929      * criteria are retrieved regardless of where they're located.
2930      * If multiple values are specified, jobs are retrieved from any of the
2931      * specified locations. If different values are specified for the
2932      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2933      * parameter, the maximum provided distance is used for all locations.
2934      * At most 5 location filters are allowed.
2935      * </pre>
2936      *
2937      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2938      */
removeLocationFilters(int index)2939     public Builder removeLocationFilters(int index) {
2940       if (locationFiltersBuilder_ == null) {
2941         ensureLocationFiltersIsMutable();
2942         locationFilters_.remove(index);
2943         onChanged();
2944       } else {
2945         locationFiltersBuilder_.remove(index);
2946       }
2947       return this;
2948     }
2949     /**
2950      *
2951      *
2952      * <pre>
2953      * The location filter specifies geo-regions containing the jobs to
2954      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2955      * for more information.
2956      * If a location value isn't specified, jobs fitting the other search
2957      * criteria are retrieved regardless of where they're located.
2958      * If multiple values are specified, jobs are retrieved from any of the
2959      * specified locations. If different values are specified for the
2960      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2961      * parameter, the maximum provided distance is used for all locations.
2962      * At most 5 location filters are allowed.
2963      * </pre>
2964      *
2965      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2966      */
getLocationFiltersBuilder(int index)2967     public com.google.cloud.talent.v4.LocationFilter.Builder getLocationFiltersBuilder(int index) {
2968       return getLocationFiltersFieldBuilder().getBuilder(index);
2969     }
2970     /**
2971      *
2972      *
2973      * <pre>
2974      * The location filter specifies geo-regions containing the jobs to
2975      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
2976      * for more information.
2977      * If a location value isn't specified, jobs fitting the other search
2978      * criteria are retrieved regardless of where they're located.
2979      * If multiple values are specified, jobs are retrieved from any of the
2980      * specified locations. If different values are specified for the
2981      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
2982      * parameter, the maximum provided distance is used for all locations.
2983      * At most 5 location filters are allowed.
2984      * </pre>
2985      *
2986      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
2987      */
getLocationFiltersOrBuilder( int index)2988     public com.google.cloud.talent.v4.LocationFilterOrBuilder getLocationFiltersOrBuilder(
2989         int index) {
2990       if (locationFiltersBuilder_ == null) {
2991         return locationFilters_.get(index);
2992       } else {
2993         return locationFiltersBuilder_.getMessageOrBuilder(index);
2994       }
2995     }
2996     /**
2997      *
2998      *
2999      * <pre>
3000      * The location filter specifies geo-regions containing the jobs to
3001      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
3002      * for more information.
3003      * If a location value isn't specified, jobs fitting the other search
3004      * criteria are retrieved regardless of where they're located.
3005      * If multiple values are specified, jobs are retrieved from any of the
3006      * specified locations. If different values are specified for the
3007      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
3008      * parameter, the maximum provided distance is used for all locations.
3009      * At most 5 location filters are allowed.
3010      * </pre>
3011      *
3012      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
3013      */
3014     public java.util.List<? extends com.google.cloud.talent.v4.LocationFilterOrBuilder>
getLocationFiltersOrBuilderList()3015         getLocationFiltersOrBuilderList() {
3016       if (locationFiltersBuilder_ != null) {
3017         return locationFiltersBuilder_.getMessageOrBuilderList();
3018       } else {
3019         return java.util.Collections.unmodifiableList(locationFilters_);
3020       }
3021     }
3022     /**
3023      *
3024      *
3025      * <pre>
3026      * The location filter specifies geo-regions containing the jobs to
3027      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
3028      * for more information.
3029      * If a location value isn't specified, jobs fitting the other search
3030      * criteria are retrieved regardless of where they're located.
3031      * If multiple values are specified, jobs are retrieved from any of the
3032      * specified locations. If different values are specified for the
3033      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
3034      * parameter, the maximum provided distance is used for all locations.
3035      * At most 5 location filters are allowed.
3036      * </pre>
3037      *
3038      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
3039      */
addLocationFiltersBuilder()3040     public com.google.cloud.talent.v4.LocationFilter.Builder addLocationFiltersBuilder() {
3041       return getLocationFiltersFieldBuilder()
3042           .addBuilder(com.google.cloud.talent.v4.LocationFilter.getDefaultInstance());
3043     }
3044     /**
3045      *
3046      *
3047      * <pre>
3048      * The location filter specifies geo-regions containing the jobs to
3049      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
3050      * for more information.
3051      * If a location value isn't specified, jobs fitting the other search
3052      * criteria are retrieved regardless of where they're located.
3053      * If multiple values are specified, jobs are retrieved from any of the
3054      * specified locations. If different values are specified for the
3055      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
3056      * parameter, the maximum provided distance is used for all locations.
3057      * At most 5 location filters are allowed.
3058      * </pre>
3059      *
3060      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
3061      */
addLocationFiltersBuilder(int index)3062     public com.google.cloud.talent.v4.LocationFilter.Builder addLocationFiltersBuilder(int index) {
3063       return getLocationFiltersFieldBuilder()
3064           .addBuilder(index, com.google.cloud.talent.v4.LocationFilter.getDefaultInstance());
3065     }
3066     /**
3067      *
3068      *
3069      * <pre>
3070      * The location filter specifies geo-regions containing the jobs to
3071      * search against. See [LocationFilter][google.cloud.talent.v4.LocationFilter]
3072      * for more information.
3073      * If a location value isn't specified, jobs fitting the other search
3074      * criteria are retrieved regardless of where they're located.
3075      * If multiple values are specified, jobs are retrieved from any of the
3076      * specified locations. If different values are specified for the
3077      * [LocationFilter.distance_in_miles][google.cloud.talent.v4.LocationFilter.distance_in_miles]
3078      * parameter, the maximum provided distance is used for all locations.
3079      * At most 5 location filters are allowed.
3080      * </pre>
3081      *
3082      * <code>repeated .google.cloud.talent.v4.LocationFilter location_filters = 3;</code>
3083      */
3084     public java.util.List<com.google.cloud.talent.v4.LocationFilter.Builder>
getLocationFiltersBuilderList()3085         getLocationFiltersBuilderList() {
3086       return getLocationFiltersFieldBuilder().getBuilderList();
3087     }
3088 
3089     private com.google.protobuf.RepeatedFieldBuilderV3<
3090             com.google.cloud.talent.v4.LocationFilter,
3091             com.google.cloud.talent.v4.LocationFilter.Builder,
3092             com.google.cloud.talent.v4.LocationFilterOrBuilder>
getLocationFiltersFieldBuilder()3093         getLocationFiltersFieldBuilder() {
3094       if (locationFiltersBuilder_ == null) {
3095         locationFiltersBuilder_ =
3096             new com.google.protobuf.RepeatedFieldBuilderV3<
3097                 com.google.cloud.talent.v4.LocationFilter,
3098                 com.google.cloud.talent.v4.LocationFilter.Builder,
3099                 com.google.cloud.talent.v4.LocationFilterOrBuilder>(
3100                 locationFilters_,
3101                 ((bitField0_ & 0x00000008) != 0),
3102                 getParentForChildren(),
3103                 isClean());
3104         locationFilters_ = null;
3105       }
3106       return locationFiltersBuilder_;
3107     }
3108 
3109     private java.util.List<java.lang.Integer> jobCategories_ = java.util.Collections.emptyList();
3110 
ensureJobCategoriesIsMutable()3111     private void ensureJobCategoriesIsMutable() {
3112       if (!((bitField0_ & 0x00000010) != 0)) {
3113         jobCategories_ = new java.util.ArrayList<java.lang.Integer>(jobCategories_);
3114         bitField0_ |= 0x00000010;
3115       }
3116     }
3117     /**
3118      *
3119      *
3120      * <pre>
3121      * The category filter specifies the categories of jobs to search against.
3122      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3123      * If a value isn't specified, jobs from any category are searched against.
3124      * If multiple values are specified, jobs from any of the specified
3125      * categories are searched against.
3126      * </pre>
3127      *
3128      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3129      *
3130      * @return A list containing the jobCategories.
3131      */
getJobCategoriesList()3132     public java.util.List<com.google.cloud.talent.v4.JobCategory> getJobCategoriesList() {
3133       return new com.google.protobuf.Internal.ListAdapter<
3134           java.lang.Integer, com.google.cloud.talent.v4.JobCategory>(
3135           jobCategories_, jobCategories_converter_);
3136     }
3137     /**
3138      *
3139      *
3140      * <pre>
3141      * The category filter specifies the categories of jobs to search against.
3142      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3143      * If a value isn't specified, jobs from any category are searched against.
3144      * If multiple values are specified, jobs from any of the specified
3145      * categories are searched against.
3146      * </pre>
3147      *
3148      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3149      *
3150      * @return The count of jobCategories.
3151      */
getJobCategoriesCount()3152     public int getJobCategoriesCount() {
3153       return jobCategories_.size();
3154     }
3155     /**
3156      *
3157      *
3158      * <pre>
3159      * The category filter specifies the categories of jobs to search against.
3160      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3161      * If a value isn't specified, jobs from any category are searched against.
3162      * If multiple values are specified, jobs from any of the specified
3163      * categories are searched against.
3164      * </pre>
3165      *
3166      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3167      *
3168      * @param index The index of the element to return.
3169      * @return The jobCategories at the given index.
3170      */
getJobCategories(int index)3171     public com.google.cloud.talent.v4.JobCategory getJobCategories(int index) {
3172       return jobCategories_converter_.convert(jobCategories_.get(index));
3173     }
3174     /**
3175      *
3176      *
3177      * <pre>
3178      * The category filter specifies the categories of jobs to search against.
3179      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3180      * If a value isn't specified, jobs from any category are searched against.
3181      * If multiple values are specified, jobs from any of the specified
3182      * categories are searched against.
3183      * </pre>
3184      *
3185      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3186      *
3187      * @param index The index to set the value at.
3188      * @param value The jobCategories to set.
3189      * @return This builder for chaining.
3190      */
setJobCategories(int index, com.google.cloud.talent.v4.JobCategory value)3191     public Builder setJobCategories(int index, com.google.cloud.talent.v4.JobCategory value) {
3192       if (value == null) {
3193         throw new NullPointerException();
3194       }
3195       ensureJobCategoriesIsMutable();
3196       jobCategories_.set(index, value.getNumber());
3197       onChanged();
3198       return this;
3199     }
3200     /**
3201      *
3202      *
3203      * <pre>
3204      * The category filter specifies the categories of jobs to search against.
3205      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3206      * If a value isn't specified, jobs from any category are searched against.
3207      * If multiple values are specified, jobs from any of the specified
3208      * categories are searched against.
3209      * </pre>
3210      *
3211      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3212      *
3213      * @param value The jobCategories to add.
3214      * @return This builder for chaining.
3215      */
addJobCategories(com.google.cloud.talent.v4.JobCategory value)3216     public Builder addJobCategories(com.google.cloud.talent.v4.JobCategory value) {
3217       if (value == null) {
3218         throw new NullPointerException();
3219       }
3220       ensureJobCategoriesIsMutable();
3221       jobCategories_.add(value.getNumber());
3222       onChanged();
3223       return this;
3224     }
3225     /**
3226      *
3227      *
3228      * <pre>
3229      * The category filter specifies the categories of jobs to search against.
3230      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3231      * If a value isn't specified, jobs from any category are searched against.
3232      * If multiple values are specified, jobs from any of the specified
3233      * categories are searched against.
3234      * </pre>
3235      *
3236      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3237      *
3238      * @param values The jobCategories to add.
3239      * @return This builder for chaining.
3240      */
addAllJobCategories( java.lang.Iterable<? extends com.google.cloud.talent.v4.JobCategory> values)3241     public Builder addAllJobCategories(
3242         java.lang.Iterable<? extends com.google.cloud.talent.v4.JobCategory> values) {
3243       ensureJobCategoriesIsMutable();
3244       for (com.google.cloud.talent.v4.JobCategory value : values) {
3245         jobCategories_.add(value.getNumber());
3246       }
3247       onChanged();
3248       return this;
3249     }
3250     /**
3251      *
3252      *
3253      * <pre>
3254      * The category filter specifies the categories of jobs to search against.
3255      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3256      * If a value isn't specified, jobs from any category are searched against.
3257      * If multiple values are specified, jobs from any of the specified
3258      * categories are searched against.
3259      * </pre>
3260      *
3261      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3262      *
3263      * @return This builder for chaining.
3264      */
clearJobCategories()3265     public Builder clearJobCategories() {
3266       jobCategories_ = java.util.Collections.emptyList();
3267       bitField0_ = (bitField0_ & ~0x00000010);
3268       onChanged();
3269       return this;
3270     }
3271     /**
3272      *
3273      *
3274      * <pre>
3275      * The category filter specifies the categories of jobs to search against.
3276      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3277      * If a value isn't specified, jobs from any category are searched against.
3278      * If multiple values are specified, jobs from any of the specified
3279      * categories are searched against.
3280      * </pre>
3281      *
3282      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3283      *
3284      * @return A list containing the enum numeric values on the wire for jobCategories.
3285      */
getJobCategoriesValueList()3286     public java.util.List<java.lang.Integer> getJobCategoriesValueList() {
3287       return java.util.Collections.unmodifiableList(jobCategories_);
3288     }
3289     /**
3290      *
3291      *
3292      * <pre>
3293      * The category filter specifies the categories of jobs to search against.
3294      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3295      * If a value isn't specified, jobs from any category are searched against.
3296      * If multiple values are specified, jobs from any of the specified
3297      * categories are searched against.
3298      * </pre>
3299      *
3300      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3301      *
3302      * @param index The index of the value to return.
3303      * @return The enum numeric value on the wire of jobCategories at the given index.
3304      */
getJobCategoriesValue(int index)3305     public int getJobCategoriesValue(int index) {
3306       return jobCategories_.get(index);
3307     }
3308     /**
3309      *
3310      *
3311      * <pre>
3312      * The category filter specifies the categories of jobs to search against.
3313      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3314      * If a value isn't specified, jobs from any category are searched against.
3315      * If multiple values are specified, jobs from any of the specified
3316      * categories are searched against.
3317      * </pre>
3318      *
3319      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3320      *
3321      * @param index The index to set the value at.
3322      * @param value The enum numeric value on the wire for jobCategories to set.
3323      * @return This builder for chaining.
3324      */
setJobCategoriesValue(int index, int value)3325     public Builder setJobCategoriesValue(int index, int value) {
3326       ensureJobCategoriesIsMutable();
3327       jobCategories_.set(index, value);
3328       onChanged();
3329       return this;
3330     }
3331     /**
3332      *
3333      *
3334      * <pre>
3335      * The category filter specifies the categories of jobs to search against.
3336      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3337      * If a value isn't specified, jobs from any category are searched against.
3338      * If multiple values are specified, jobs from any of the specified
3339      * categories are searched against.
3340      * </pre>
3341      *
3342      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3343      *
3344      * @param value The enum numeric value on the wire for jobCategories to add.
3345      * @return This builder for chaining.
3346      */
addJobCategoriesValue(int value)3347     public Builder addJobCategoriesValue(int value) {
3348       ensureJobCategoriesIsMutable();
3349       jobCategories_.add(value);
3350       onChanged();
3351       return this;
3352     }
3353     /**
3354      *
3355      *
3356      * <pre>
3357      * The category filter specifies the categories of jobs to search against.
3358      * See [JobCategory][google.cloud.talent.v4.JobCategory] for more information.
3359      * If a value isn't specified, jobs from any category are searched against.
3360      * If multiple values are specified, jobs from any of the specified
3361      * categories are searched against.
3362      * </pre>
3363      *
3364      * <code>repeated .google.cloud.talent.v4.JobCategory job_categories = 4;</code>
3365      *
3366      * @param values The enum numeric values on the wire for jobCategories to add.
3367      * @return This builder for chaining.
3368      */
addAllJobCategoriesValue(java.lang.Iterable<java.lang.Integer> values)3369     public Builder addAllJobCategoriesValue(java.lang.Iterable<java.lang.Integer> values) {
3370       ensureJobCategoriesIsMutable();
3371       for (int value : values) {
3372         jobCategories_.add(value);
3373       }
3374       onChanged();
3375       return this;
3376     }
3377 
3378     private com.google.cloud.talent.v4.CommuteFilter commuteFilter_;
3379     private com.google.protobuf.SingleFieldBuilderV3<
3380             com.google.cloud.talent.v4.CommuteFilter,
3381             com.google.cloud.talent.v4.CommuteFilter.Builder,
3382             com.google.cloud.talent.v4.CommuteFilterOrBuilder>
3383         commuteFilterBuilder_;
3384     /**
3385      *
3386      *
3387      * <pre>
3388      * Allows filtering jobs by commute time with different travel methods (for
3389      *  example, driving or public transit).
3390      * Note: This only works when you specify a
3391      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3392      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3393      * ignored.
3394      *  Currently we don't support sorting by commute time.
3395      * </pre>
3396      *
3397      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3398      *
3399      * @return Whether the commuteFilter field is set.
3400      */
hasCommuteFilter()3401     public boolean hasCommuteFilter() {
3402       return ((bitField0_ & 0x00000020) != 0);
3403     }
3404     /**
3405      *
3406      *
3407      * <pre>
3408      * Allows filtering jobs by commute time with different travel methods (for
3409      *  example, driving or public transit).
3410      * Note: This only works when you specify a
3411      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3412      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3413      * ignored.
3414      *  Currently we don't support sorting by commute time.
3415      * </pre>
3416      *
3417      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3418      *
3419      * @return The commuteFilter.
3420      */
getCommuteFilter()3421     public com.google.cloud.talent.v4.CommuteFilter getCommuteFilter() {
3422       if (commuteFilterBuilder_ == null) {
3423         return commuteFilter_ == null
3424             ? com.google.cloud.talent.v4.CommuteFilter.getDefaultInstance()
3425             : commuteFilter_;
3426       } else {
3427         return commuteFilterBuilder_.getMessage();
3428       }
3429     }
3430     /**
3431      *
3432      *
3433      * <pre>
3434      * Allows filtering jobs by commute time with different travel methods (for
3435      *  example, driving or public transit).
3436      * Note: This only works when you specify a
3437      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3438      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3439      * ignored.
3440      *  Currently we don't support sorting by commute time.
3441      * </pre>
3442      *
3443      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3444      */
setCommuteFilter(com.google.cloud.talent.v4.CommuteFilter value)3445     public Builder setCommuteFilter(com.google.cloud.talent.v4.CommuteFilter value) {
3446       if (commuteFilterBuilder_ == null) {
3447         if (value == null) {
3448           throw new NullPointerException();
3449         }
3450         commuteFilter_ = value;
3451       } else {
3452         commuteFilterBuilder_.setMessage(value);
3453       }
3454       bitField0_ |= 0x00000020;
3455       onChanged();
3456       return this;
3457     }
3458     /**
3459      *
3460      *
3461      * <pre>
3462      * Allows filtering jobs by commute time with different travel methods (for
3463      *  example, driving or public transit).
3464      * Note: This only works when you specify a
3465      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3466      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3467      * ignored.
3468      *  Currently we don't support sorting by commute time.
3469      * </pre>
3470      *
3471      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3472      */
setCommuteFilter( com.google.cloud.talent.v4.CommuteFilter.Builder builderForValue)3473     public Builder setCommuteFilter(
3474         com.google.cloud.talent.v4.CommuteFilter.Builder builderForValue) {
3475       if (commuteFilterBuilder_ == null) {
3476         commuteFilter_ = builderForValue.build();
3477       } else {
3478         commuteFilterBuilder_.setMessage(builderForValue.build());
3479       }
3480       bitField0_ |= 0x00000020;
3481       onChanged();
3482       return this;
3483     }
3484     /**
3485      *
3486      *
3487      * <pre>
3488      * Allows filtering jobs by commute time with different travel methods (for
3489      *  example, driving or public transit).
3490      * Note: This only works when you specify a
3491      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3492      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3493      * ignored.
3494      *  Currently we don't support sorting by commute time.
3495      * </pre>
3496      *
3497      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3498      */
mergeCommuteFilter(com.google.cloud.talent.v4.CommuteFilter value)3499     public Builder mergeCommuteFilter(com.google.cloud.talent.v4.CommuteFilter value) {
3500       if (commuteFilterBuilder_ == null) {
3501         if (((bitField0_ & 0x00000020) != 0)
3502             && commuteFilter_ != null
3503             && commuteFilter_ != com.google.cloud.talent.v4.CommuteFilter.getDefaultInstance()) {
3504           getCommuteFilterBuilder().mergeFrom(value);
3505         } else {
3506           commuteFilter_ = value;
3507         }
3508       } else {
3509         commuteFilterBuilder_.mergeFrom(value);
3510       }
3511       bitField0_ |= 0x00000020;
3512       onChanged();
3513       return this;
3514     }
3515     /**
3516      *
3517      *
3518      * <pre>
3519      * Allows filtering jobs by commute time with different travel methods (for
3520      *  example, driving or public transit).
3521      * Note: This only works when you specify a
3522      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3523      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3524      * ignored.
3525      *  Currently we don't support sorting by commute time.
3526      * </pre>
3527      *
3528      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3529      */
clearCommuteFilter()3530     public Builder clearCommuteFilter() {
3531       bitField0_ = (bitField0_ & ~0x00000020);
3532       commuteFilter_ = null;
3533       if (commuteFilterBuilder_ != null) {
3534         commuteFilterBuilder_.dispose();
3535         commuteFilterBuilder_ = null;
3536       }
3537       onChanged();
3538       return this;
3539     }
3540     /**
3541      *
3542      *
3543      * <pre>
3544      * Allows filtering jobs by commute time with different travel methods (for
3545      *  example, driving or public transit).
3546      * Note: This only works when you specify a
3547      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3548      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3549      * ignored.
3550      *  Currently we don't support sorting by commute time.
3551      * </pre>
3552      *
3553      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3554      */
getCommuteFilterBuilder()3555     public com.google.cloud.talent.v4.CommuteFilter.Builder getCommuteFilterBuilder() {
3556       bitField0_ |= 0x00000020;
3557       onChanged();
3558       return getCommuteFilterFieldBuilder().getBuilder();
3559     }
3560     /**
3561      *
3562      *
3563      * <pre>
3564      * Allows filtering jobs by commute time with different travel methods (for
3565      *  example, driving or public transit).
3566      * Note: This only works when you specify a
3567      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3568      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3569      * ignored.
3570      *  Currently we don't support sorting by commute time.
3571      * </pre>
3572      *
3573      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3574      */
getCommuteFilterOrBuilder()3575     public com.google.cloud.talent.v4.CommuteFilterOrBuilder getCommuteFilterOrBuilder() {
3576       if (commuteFilterBuilder_ != null) {
3577         return commuteFilterBuilder_.getMessageOrBuilder();
3578       } else {
3579         return commuteFilter_ == null
3580             ? com.google.cloud.talent.v4.CommuteFilter.getDefaultInstance()
3581             : commuteFilter_;
3582       }
3583     }
3584     /**
3585      *
3586      *
3587      * <pre>
3588      * Allows filtering jobs by commute time with different travel methods (for
3589      *  example, driving or public transit).
3590      * Note: This only works when you specify a
3591      * [CommuteMethod][google.cloud.talent.v4.CommuteMethod]. In this case,
3592      * [location_filters][google.cloud.talent.v4.JobQuery.location_filters] is
3593      * ignored.
3594      *  Currently we don't support sorting by commute time.
3595      * </pre>
3596      *
3597      * <code>.google.cloud.talent.v4.CommuteFilter commute_filter = 5;</code>
3598      */
3599     private com.google.protobuf.SingleFieldBuilderV3<
3600             com.google.cloud.talent.v4.CommuteFilter,
3601             com.google.cloud.talent.v4.CommuteFilter.Builder,
3602             com.google.cloud.talent.v4.CommuteFilterOrBuilder>
getCommuteFilterFieldBuilder()3603         getCommuteFilterFieldBuilder() {
3604       if (commuteFilterBuilder_ == null) {
3605         commuteFilterBuilder_ =
3606             new com.google.protobuf.SingleFieldBuilderV3<
3607                 com.google.cloud.talent.v4.CommuteFilter,
3608                 com.google.cloud.talent.v4.CommuteFilter.Builder,
3609                 com.google.cloud.talent.v4.CommuteFilterOrBuilder>(
3610                 getCommuteFilter(), getParentForChildren(), isClean());
3611         commuteFilter_ = null;
3612       }
3613       return commuteFilterBuilder_;
3614     }
3615 
3616     private com.google.protobuf.LazyStringList companyDisplayNames_ =
3617         com.google.protobuf.LazyStringArrayList.EMPTY;
3618 
ensureCompanyDisplayNamesIsMutable()3619     private void ensureCompanyDisplayNamesIsMutable() {
3620       if (!((bitField0_ & 0x00000040) != 0)) {
3621         companyDisplayNames_ = new com.google.protobuf.LazyStringArrayList(companyDisplayNames_);
3622         bitField0_ |= 0x00000040;
3623       }
3624     }
3625     /**
3626      *
3627      *
3628      * <pre>
3629      * This filter specifies the company
3630      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3631      * jobs to search against. The company name must match the value exactly.
3632      * Alternatively, the value being searched for can be wrapped in different
3633      * match operators.
3634      * `SUBSTRING_MATCH([value])`
3635      * The company name must contain a case insensitive substring match of the
3636      * value. Using this function may increase latency.
3637      * Sample Value: `SUBSTRING_MATCH(google)`
3638      * `MULTI_WORD_TOKEN_MATCH([value])`
3639      * The value will be treated as a multi word token and the company name must
3640      * contain a case insensitive match of the value. Using this function may
3641      * increase latency.
3642      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3643      * If a value isn't specified, jobs within the search results are
3644      * associated with any company.
3645      * If multiple values are specified, jobs within the search results may be
3646      * associated with any of the specified companies.
3647      * At most 20 company display name filters are allowed.
3648      * </pre>
3649      *
3650      * <code>repeated string company_display_names = 6;</code>
3651      *
3652      * @return A list containing the companyDisplayNames.
3653      */
getCompanyDisplayNamesList()3654     public com.google.protobuf.ProtocolStringList getCompanyDisplayNamesList() {
3655       return companyDisplayNames_.getUnmodifiableView();
3656     }
3657     /**
3658      *
3659      *
3660      * <pre>
3661      * This filter specifies the company
3662      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3663      * jobs to search against. The company name must match the value exactly.
3664      * Alternatively, the value being searched for can be wrapped in different
3665      * match operators.
3666      * `SUBSTRING_MATCH([value])`
3667      * The company name must contain a case insensitive substring match of the
3668      * value. Using this function may increase latency.
3669      * Sample Value: `SUBSTRING_MATCH(google)`
3670      * `MULTI_WORD_TOKEN_MATCH([value])`
3671      * The value will be treated as a multi word token and the company name must
3672      * contain a case insensitive match of the value. Using this function may
3673      * increase latency.
3674      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3675      * If a value isn't specified, jobs within the search results are
3676      * associated with any company.
3677      * If multiple values are specified, jobs within the search results may be
3678      * associated with any of the specified companies.
3679      * At most 20 company display name filters are allowed.
3680      * </pre>
3681      *
3682      * <code>repeated string company_display_names = 6;</code>
3683      *
3684      * @return The count of companyDisplayNames.
3685      */
getCompanyDisplayNamesCount()3686     public int getCompanyDisplayNamesCount() {
3687       return companyDisplayNames_.size();
3688     }
3689     /**
3690      *
3691      *
3692      * <pre>
3693      * This filter specifies the company
3694      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3695      * jobs to search against. The company name must match the value exactly.
3696      * Alternatively, the value being searched for can be wrapped in different
3697      * match operators.
3698      * `SUBSTRING_MATCH([value])`
3699      * The company name must contain a case insensitive substring match of the
3700      * value. Using this function may increase latency.
3701      * Sample Value: `SUBSTRING_MATCH(google)`
3702      * `MULTI_WORD_TOKEN_MATCH([value])`
3703      * The value will be treated as a multi word token and the company name must
3704      * contain a case insensitive match of the value. Using this function may
3705      * increase latency.
3706      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3707      * If a value isn't specified, jobs within the search results are
3708      * associated with any company.
3709      * If multiple values are specified, jobs within the search results may be
3710      * associated with any of the specified companies.
3711      * At most 20 company display name filters are allowed.
3712      * </pre>
3713      *
3714      * <code>repeated string company_display_names = 6;</code>
3715      *
3716      * @param index The index of the element to return.
3717      * @return The companyDisplayNames at the given index.
3718      */
getCompanyDisplayNames(int index)3719     public java.lang.String getCompanyDisplayNames(int index) {
3720       return companyDisplayNames_.get(index);
3721     }
3722     /**
3723      *
3724      *
3725      * <pre>
3726      * This filter specifies the company
3727      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3728      * jobs to search against. The company name must match the value exactly.
3729      * Alternatively, the value being searched for can be wrapped in different
3730      * match operators.
3731      * `SUBSTRING_MATCH([value])`
3732      * The company name must contain a case insensitive substring match of the
3733      * value. Using this function may increase latency.
3734      * Sample Value: `SUBSTRING_MATCH(google)`
3735      * `MULTI_WORD_TOKEN_MATCH([value])`
3736      * The value will be treated as a multi word token and the company name must
3737      * contain a case insensitive match of the value. Using this function may
3738      * increase latency.
3739      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3740      * If a value isn't specified, jobs within the search results are
3741      * associated with any company.
3742      * If multiple values are specified, jobs within the search results may be
3743      * associated with any of the specified companies.
3744      * At most 20 company display name filters are allowed.
3745      * </pre>
3746      *
3747      * <code>repeated string company_display_names = 6;</code>
3748      *
3749      * @param index The index of the value to return.
3750      * @return The bytes of the companyDisplayNames at the given index.
3751      */
getCompanyDisplayNamesBytes(int index)3752     public com.google.protobuf.ByteString getCompanyDisplayNamesBytes(int index) {
3753       return companyDisplayNames_.getByteString(index);
3754     }
3755     /**
3756      *
3757      *
3758      * <pre>
3759      * This filter specifies the company
3760      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3761      * jobs to search against. The company name must match the value exactly.
3762      * Alternatively, the value being searched for can be wrapped in different
3763      * match operators.
3764      * `SUBSTRING_MATCH([value])`
3765      * The company name must contain a case insensitive substring match of the
3766      * value. Using this function may increase latency.
3767      * Sample Value: `SUBSTRING_MATCH(google)`
3768      * `MULTI_WORD_TOKEN_MATCH([value])`
3769      * The value will be treated as a multi word token and the company name must
3770      * contain a case insensitive match of the value. Using this function may
3771      * increase latency.
3772      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3773      * If a value isn't specified, jobs within the search results are
3774      * associated with any company.
3775      * If multiple values are specified, jobs within the search results may be
3776      * associated with any of the specified companies.
3777      * At most 20 company display name filters are allowed.
3778      * </pre>
3779      *
3780      * <code>repeated string company_display_names = 6;</code>
3781      *
3782      * @param index The index to set the value at.
3783      * @param value The companyDisplayNames to set.
3784      * @return This builder for chaining.
3785      */
setCompanyDisplayNames(int index, java.lang.String value)3786     public Builder setCompanyDisplayNames(int index, java.lang.String value) {
3787       if (value == null) {
3788         throw new NullPointerException();
3789       }
3790       ensureCompanyDisplayNamesIsMutable();
3791       companyDisplayNames_.set(index, value);
3792       onChanged();
3793       return this;
3794     }
3795     /**
3796      *
3797      *
3798      * <pre>
3799      * This filter specifies the company
3800      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3801      * jobs to search against. The company name must match the value exactly.
3802      * Alternatively, the value being searched for can be wrapped in different
3803      * match operators.
3804      * `SUBSTRING_MATCH([value])`
3805      * The company name must contain a case insensitive substring match of the
3806      * value. Using this function may increase latency.
3807      * Sample Value: `SUBSTRING_MATCH(google)`
3808      * `MULTI_WORD_TOKEN_MATCH([value])`
3809      * The value will be treated as a multi word token and the company name must
3810      * contain a case insensitive match of the value. Using this function may
3811      * increase latency.
3812      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3813      * If a value isn't specified, jobs within the search results are
3814      * associated with any company.
3815      * If multiple values are specified, jobs within the search results may be
3816      * associated with any of the specified companies.
3817      * At most 20 company display name filters are allowed.
3818      * </pre>
3819      *
3820      * <code>repeated string company_display_names = 6;</code>
3821      *
3822      * @param value The companyDisplayNames to add.
3823      * @return This builder for chaining.
3824      */
addCompanyDisplayNames(java.lang.String value)3825     public Builder addCompanyDisplayNames(java.lang.String value) {
3826       if (value == null) {
3827         throw new NullPointerException();
3828       }
3829       ensureCompanyDisplayNamesIsMutable();
3830       companyDisplayNames_.add(value);
3831       onChanged();
3832       return this;
3833     }
3834     /**
3835      *
3836      *
3837      * <pre>
3838      * This filter specifies the company
3839      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3840      * jobs to search against. The company name must match the value exactly.
3841      * Alternatively, the value being searched for can be wrapped in different
3842      * match operators.
3843      * `SUBSTRING_MATCH([value])`
3844      * The company name must contain a case insensitive substring match of the
3845      * value. Using this function may increase latency.
3846      * Sample Value: `SUBSTRING_MATCH(google)`
3847      * `MULTI_WORD_TOKEN_MATCH([value])`
3848      * The value will be treated as a multi word token and the company name must
3849      * contain a case insensitive match of the value. Using this function may
3850      * increase latency.
3851      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3852      * If a value isn't specified, jobs within the search results are
3853      * associated with any company.
3854      * If multiple values are specified, jobs within the search results may be
3855      * associated with any of the specified companies.
3856      * At most 20 company display name filters are allowed.
3857      * </pre>
3858      *
3859      * <code>repeated string company_display_names = 6;</code>
3860      *
3861      * @param values The companyDisplayNames to add.
3862      * @return This builder for chaining.
3863      */
addAllCompanyDisplayNames(java.lang.Iterable<java.lang.String> values)3864     public Builder addAllCompanyDisplayNames(java.lang.Iterable<java.lang.String> values) {
3865       ensureCompanyDisplayNamesIsMutable();
3866       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, companyDisplayNames_);
3867       onChanged();
3868       return this;
3869     }
3870     /**
3871      *
3872      *
3873      * <pre>
3874      * This filter specifies the company
3875      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3876      * jobs to search against. The company name must match the value exactly.
3877      * Alternatively, the value being searched for can be wrapped in different
3878      * match operators.
3879      * `SUBSTRING_MATCH([value])`
3880      * The company name must contain a case insensitive substring match of the
3881      * value. Using this function may increase latency.
3882      * Sample Value: `SUBSTRING_MATCH(google)`
3883      * `MULTI_WORD_TOKEN_MATCH([value])`
3884      * The value will be treated as a multi word token and the company name must
3885      * contain a case insensitive match of the value. Using this function may
3886      * increase latency.
3887      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3888      * If a value isn't specified, jobs within the search results are
3889      * associated with any company.
3890      * If multiple values are specified, jobs within the search results may be
3891      * associated with any of the specified companies.
3892      * At most 20 company display name filters are allowed.
3893      * </pre>
3894      *
3895      * <code>repeated string company_display_names = 6;</code>
3896      *
3897      * @return This builder for chaining.
3898      */
clearCompanyDisplayNames()3899     public Builder clearCompanyDisplayNames() {
3900       companyDisplayNames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
3901       bitField0_ = (bitField0_ & ~0x00000040);
3902       onChanged();
3903       return this;
3904     }
3905     /**
3906      *
3907      *
3908      * <pre>
3909      * This filter specifies the company
3910      * [Company.display_name][google.cloud.talent.v4.Company.display_name] of the
3911      * jobs to search against. The company name must match the value exactly.
3912      * Alternatively, the value being searched for can be wrapped in different
3913      * match operators.
3914      * `SUBSTRING_MATCH([value])`
3915      * The company name must contain a case insensitive substring match of the
3916      * value. Using this function may increase latency.
3917      * Sample Value: `SUBSTRING_MATCH(google)`
3918      * `MULTI_WORD_TOKEN_MATCH([value])`
3919      * The value will be treated as a multi word token and the company name must
3920      * contain a case insensitive match of the value. Using this function may
3921      * increase latency.
3922      * Sample Value: `MULTI_WORD_TOKEN_MATCH(google)`
3923      * If a value isn't specified, jobs within the search results are
3924      * associated with any company.
3925      * If multiple values are specified, jobs within the search results may be
3926      * associated with any of the specified companies.
3927      * At most 20 company display name filters are allowed.
3928      * </pre>
3929      *
3930      * <code>repeated string company_display_names = 6;</code>
3931      *
3932      * @param value The bytes of the companyDisplayNames to add.
3933      * @return This builder for chaining.
3934      */
addCompanyDisplayNamesBytes(com.google.protobuf.ByteString value)3935     public Builder addCompanyDisplayNamesBytes(com.google.protobuf.ByteString value) {
3936       if (value == null) {
3937         throw new NullPointerException();
3938       }
3939       checkByteStringIsUtf8(value);
3940       ensureCompanyDisplayNamesIsMutable();
3941       companyDisplayNames_.add(value);
3942       onChanged();
3943       return this;
3944     }
3945 
3946     private com.google.cloud.talent.v4.CompensationFilter compensationFilter_;
3947     private com.google.protobuf.SingleFieldBuilderV3<
3948             com.google.cloud.talent.v4.CompensationFilter,
3949             com.google.cloud.talent.v4.CompensationFilter.Builder,
3950             com.google.cloud.talent.v4.CompensationFilterOrBuilder>
3951         compensationFilterBuilder_;
3952     /**
3953      *
3954      *
3955      * <pre>
3956      * This search filter is applied only to
3957      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
3958      * example, if the filter is specified as "Hourly job with per-hour
3959      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
3960      * filter isn't defined, all open jobs are searched.
3961      * </pre>
3962      *
3963      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
3964      *
3965      * @return Whether the compensationFilter field is set.
3966      */
hasCompensationFilter()3967     public boolean hasCompensationFilter() {
3968       return ((bitField0_ & 0x00000080) != 0);
3969     }
3970     /**
3971      *
3972      *
3973      * <pre>
3974      * This search filter is applied only to
3975      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
3976      * example, if the filter is specified as "Hourly job with per-hour
3977      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
3978      * filter isn't defined, all open jobs are searched.
3979      * </pre>
3980      *
3981      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
3982      *
3983      * @return The compensationFilter.
3984      */
getCompensationFilter()3985     public com.google.cloud.talent.v4.CompensationFilter getCompensationFilter() {
3986       if (compensationFilterBuilder_ == null) {
3987         return compensationFilter_ == null
3988             ? com.google.cloud.talent.v4.CompensationFilter.getDefaultInstance()
3989             : compensationFilter_;
3990       } else {
3991         return compensationFilterBuilder_.getMessage();
3992       }
3993     }
3994     /**
3995      *
3996      *
3997      * <pre>
3998      * This search filter is applied only to
3999      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4000      * example, if the filter is specified as "Hourly job with per-hour
4001      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4002      * filter isn't defined, all open jobs are searched.
4003      * </pre>
4004      *
4005      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4006      */
setCompensationFilter(com.google.cloud.talent.v4.CompensationFilter value)4007     public Builder setCompensationFilter(com.google.cloud.talent.v4.CompensationFilter value) {
4008       if (compensationFilterBuilder_ == null) {
4009         if (value == null) {
4010           throw new NullPointerException();
4011         }
4012         compensationFilter_ = value;
4013       } else {
4014         compensationFilterBuilder_.setMessage(value);
4015       }
4016       bitField0_ |= 0x00000080;
4017       onChanged();
4018       return this;
4019     }
4020     /**
4021      *
4022      *
4023      * <pre>
4024      * This search filter is applied only to
4025      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4026      * example, if the filter is specified as "Hourly job with per-hour
4027      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4028      * filter isn't defined, all open jobs are searched.
4029      * </pre>
4030      *
4031      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4032      */
setCompensationFilter( com.google.cloud.talent.v4.CompensationFilter.Builder builderForValue)4033     public Builder setCompensationFilter(
4034         com.google.cloud.talent.v4.CompensationFilter.Builder builderForValue) {
4035       if (compensationFilterBuilder_ == null) {
4036         compensationFilter_ = builderForValue.build();
4037       } else {
4038         compensationFilterBuilder_.setMessage(builderForValue.build());
4039       }
4040       bitField0_ |= 0x00000080;
4041       onChanged();
4042       return this;
4043     }
4044     /**
4045      *
4046      *
4047      * <pre>
4048      * This search filter is applied only to
4049      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4050      * example, if the filter is specified as "Hourly job with per-hour
4051      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4052      * filter isn't defined, all open jobs are searched.
4053      * </pre>
4054      *
4055      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4056      */
mergeCompensationFilter(com.google.cloud.talent.v4.CompensationFilter value)4057     public Builder mergeCompensationFilter(com.google.cloud.talent.v4.CompensationFilter value) {
4058       if (compensationFilterBuilder_ == null) {
4059         if (((bitField0_ & 0x00000080) != 0)
4060             && compensationFilter_ != null
4061             && compensationFilter_
4062                 != com.google.cloud.talent.v4.CompensationFilter.getDefaultInstance()) {
4063           getCompensationFilterBuilder().mergeFrom(value);
4064         } else {
4065           compensationFilter_ = value;
4066         }
4067       } else {
4068         compensationFilterBuilder_.mergeFrom(value);
4069       }
4070       bitField0_ |= 0x00000080;
4071       onChanged();
4072       return this;
4073     }
4074     /**
4075      *
4076      *
4077      * <pre>
4078      * This search filter is applied only to
4079      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4080      * example, if the filter is specified as "Hourly job with per-hour
4081      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4082      * filter isn't defined, all open jobs are searched.
4083      * </pre>
4084      *
4085      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4086      */
clearCompensationFilter()4087     public Builder clearCompensationFilter() {
4088       bitField0_ = (bitField0_ & ~0x00000080);
4089       compensationFilter_ = null;
4090       if (compensationFilterBuilder_ != null) {
4091         compensationFilterBuilder_.dispose();
4092         compensationFilterBuilder_ = null;
4093       }
4094       onChanged();
4095       return this;
4096     }
4097     /**
4098      *
4099      *
4100      * <pre>
4101      * This search filter is applied only to
4102      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4103      * example, if the filter is specified as "Hourly job with per-hour
4104      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4105      * filter isn't defined, all open jobs are searched.
4106      * </pre>
4107      *
4108      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4109      */
getCompensationFilterBuilder()4110     public com.google.cloud.talent.v4.CompensationFilter.Builder getCompensationFilterBuilder() {
4111       bitField0_ |= 0x00000080;
4112       onChanged();
4113       return getCompensationFilterFieldBuilder().getBuilder();
4114     }
4115     /**
4116      *
4117      *
4118      * <pre>
4119      * This search filter is applied only to
4120      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4121      * example, if the filter is specified as "Hourly job with per-hour
4122      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4123      * filter isn't defined, all open jobs are searched.
4124      * </pre>
4125      *
4126      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4127      */
getCompensationFilterOrBuilder()4128     public com.google.cloud.talent.v4.CompensationFilterOrBuilder getCompensationFilterOrBuilder() {
4129       if (compensationFilterBuilder_ != null) {
4130         return compensationFilterBuilder_.getMessageOrBuilder();
4131       } else {
4132         return compensationFilter_ == null
4133             ? com.google.cloud.talent.v4.CompensationFilter.getDefaultInstance()
4134             : compensationFilter_;
4135       }
4136     }
4137     /**
4138      *
4139      *
4140      * <pre>
4141      * This search filter is applied only to
4142      * [Job.compensation_info][google.cloud.talent.v4.Job.compensation_info]. For
4143      * example, if the filter is specified as "Hourly job with per-hour
4144      * compensation &gt; $15", only jobs meeting these criteria are searched. If a
4145      * filter isn't defined, all open jobs are searched.
4146      * </pre>
4147      *
4148      * <code>.google.cloud.talent.v4.CompensationFilter compensation_filter = 7;</code>
4149      */
4150     private com.google.protobuf.SingleFieldBuilderV3<
4151             com.google.cloud.talent.v4.CompensationFilter,
4152             com.google.cloud.talent.v4.CompensationFilter.Builder,
4153             com.google.cloud.talent.v4.CompensationFilterOrBuilder>
getCompensationFilterFieldBuilder()4154         getCompensationFilterFieldBuilder() {
4155       if (compensationFilterBuilder_ == null) {
4156         compensationFilterBuilder_ =
4157             new com.google.protobuf.SingleFieldBuilderV3<
4158                 com.google.cloud.talent.v4.CompensationFilter,
4159                 com.google.cloud.talent.v4.CompensationFilter.Builder,
4160                 com.google.cloud.talent.v4.CompensationFilterOrBuilder>(
4161                 getCompensationFilter(), getParentForChildren(), isClean());
4162         compensationFilter_ = null;
4163       }
4164       return compensationFilterBuilder_;
4165     }
4166 
4167     private java.lang.Object customAttributeFilter_ = "";
4168     /**
4169      *
4170      *
4171      * <pre>
4172      * This filter specifies a structured syntax to match against the
4173      * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
4174      * marked as `filterable`.
4175      * The syntax for this expression is a subset of SQL syntax.
4176      * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
4177      * left of the operator is a custom field key and the right of the operator
4178      * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
4179      * quote (&#92;") characters.
4180      * Supported functions are `LOWER([field_name])` to
4181      * perform a case insensitive match and `EMPTY([field_name])` to filter on the
4182      * existence of a key.
4183      * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
4184      * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
4185      * comparisons or functions are allowed in the expression. The expression
4186      * must be &lt; 10000 bytes in length.
4187      * Sample Query:
4188      * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
4189      * driving_years &gt; 10`
4190      * </pre>
4191      *
4192      * <code>string custom_attribute_filter = 8;</code>
4193      *
4194      * @return The customAttributeFilter.
4195      */
getCustomAttributeFilter()4196     public java.lang.String getCustomAttributeFilter() {
4197       java.lang.Object ref = customAttributeFilter_;
4198       if (!(ref instanceof java.lang.String)) {
4199         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4200         java.lang.String s = bs.toStringUtf8();
4201         customAttributeFilter_ = s;
4202         return s;
4203       } else {
4204         return (java.lang.String) ref;
4205       }
4206     }
4207     /**
4208      *
4209      *
4210      * <pre>
4211      * This filter specifies a structured syntax to match against the
4212      * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
4213      * marked as `filterable`.
4214      * The syntax for this expression is a subset of SQL syntax.
4215      * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
4216      * left of the operator is a custom field key and the right of the operator
4217      * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
4218      * quote (&#92;") characters.
4219      * Supported functions are `LOWER([field_name])` to
4220      * perform a case insensitive match and `EMPTY([field_name])` to filter on the
4221      * existence of a key.
4222      * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
4223      * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
4224      * comparisons or functions are allowed in the expression. The expression
4225      * must be &lt; 10000 bytes in length.
4226      * Sample Query:
4227      * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
4228      * driving_years &gt; 10`
4229      * </pre>
4230      *
4231      * <code>string custom_attribute_filter = 8;</code>
4232      *
4233      * @return The bytes for customAttributeFilter.
4234      */
getCustomAttributeFilterBytes()4235     public com.google.protobuf.ByteString getCustomAttributeFilterBytes() {
4236       java.lang.Object ref = customAttributeFilter_;
4237       if (ref instanceof String) {
4238         com.google.protobuf.ByteString b =
4239             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4240         customAttributeFilter_ = b;
4241         return b;
4242       } else {
4243         return (com.google.protobuf.ByteString) ref;
4244       }
4245     }
4246     /**
4247      *
4248      *
4249      * <pre>
4250      * This filter specifies a structured syntax to match against the
4251      * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
4252      * marked as `filterable`.
4253      * The syntax for this expression is a subset of SQL syntax.
4254      * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
4255      * left of the operator is a custom field key and the right of the operator
4256      * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
4257      * quote (&#92;") characters.
4258      * Supported functions are `LOWER([field_name])` to
4259      * perform a case insensitive match and `EMPTY([field_name])` to filter on the
4260      * existence of a key.
4261      * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
4262      * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
4263      * comparisons or functions are allowed in the expression. The expression
4264      * must be &lt; 10000 bytes in length.
4265      * Sample Query:
4266      * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
4267      * driving_years &gt; 10`
4268      * </pre>
4269      *
4270      * <code>string custom_attribute_filter = 8;</code>
4271      *
4272      * @param value The customAttributeFilter to set.
4273      * @return This builder for chaining.
4274      */
setCustomAttributeFilter(java.lang.String value)4275     public Builder setCustomAttributeFilter(java.lang.String value) {
4276       if (value == null) {
4277         throw new NullPointerException();
4278       }
4279       customAttributeFilter_ = value;
4280       bitField0_ |= 0x00000100;
4281       onChanged();
4282       return this;
4283     }
4284     /**
4285      *
4286      *
4287      * <pre>
4288      * This filter specifies a structured syntax to match against the
4289      * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
4290      * marked as `filterable`.
4291      * The syntax for this expression is a subset of SQL syntax.
4292      * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
4293      * left of the operator is a custom field key and the right of the operator
4294      * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
4295      * quote (&#92;") characters.
4296      * Supported functions are `LOWER([field_name])` to
4297      * perform a case insensitive match and `EMPTY([field_name])` to filter on the
4298      * existence of a key.
4299      * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
4300      * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
4301      * comparisons or functions are allowed in the expression. The expression
4302      * must be &lt; 10000 bytes in length.
4303      * Sample Query:
4304      * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
4305      * driving_years &gt; 10`
4306      * </pre>
4307      *
4308      * <code>string custom_attribute_filter = 8;</code>
4309      *
4310      * @return This builder for chaining.
4311      */
clearCustomAttributeFilter()4312     public Builder clearCustomAttributeFilter() {
4313       customAttributeFilter_ = getDefaultInstance().getCustomAttributeFilter();
4314       bitField0_ = (bitField0_ & ~0x00000100);
4315       onChanged();
4316       return this;
4317     }
4318     /**
4319      *
4320      *
4321      * <pre>
4322      * This filter specifies a structured syntax to match against the
4323      * [Job.custom_attributes][google.cloud.talent.v4.Job.custom_attributes]
4324      * marked as `filterable`.
4325      * The syntax for this expression is a subset of SQL syntax.
4326      * Supported operators are: `=`, `!=`, `&lt;`, `&lt;=`, `&gt;`, and `&gt;=` where the
4327      * left of the operator is a custom field key and the right of the operator
4328      * is a number or a quoted string. You must escape backslash (&#92;&#92;) and
4329      * quote (&#92;") characters.
4330      * Supported functions are `LOWER([field_name])` to
4331      * perform a case insensitive match and `EMPTY([field_name])` to filter on the
4332      * existence of a key.
4333      * Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
4334      * nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
4335      * comparisons or functions are allowed in the expression. The expression
4336      * must be &lt; 10000 bytes in length.
4337      * Sample Query:
4338      * `(LOWER(driving_license)="class &#92;"a&#92;"" OR EMPTY(driving_license)) AND
4339      * driving_years &gt; 10`
4340      * </pre>
4341      *
4342      * <code>string custom_attribute_filter = 8;</code>
4343      *
4344      * @param value The bytes for customAttributeFilter to set.
4345      * @return This builder for chaining.
4346      */
setCustomAttributeFilterBytes(com.google.protobuf.ByteString value)4347     public Builder setCustomAttributeFilterBytes(com.google.protobuf.ByteString value) {
4348       if (value == null) {
4349         throw new NullPointerException();
4350       }
4351       checkByteStringIsUtf8(value);
4352       customAttributeFilter_ = value;
4353       bitField0_ |= 0x00000100;
4354       onChanged();
4355       return this;
4356     }
4357 
4358     private boolean disableSpellCheck_;
4359     /**
4360      *
4361      *
4362      * <pre>
4363      * This flag controls the spell-check feature. If false, the
4364      * service attempts to correct a misspelled query,
4365      * for example, "enginee" is corrected to "engineer".
4366      * Defaults to false: a spell check is performed.
4367      * </pre>
4368      *
4369      * <code>bool disable_spell_check = 9;</code>
4370      *
4371      * @return The disableSpellCheck.
4372      */
4373     @java.lang.Override
getDisableSpellCheck()4374     public boolean getDisableSpellCheck() {
4375       return disableSpellCheck_;
4376     }
4377     /**
4378      *
4379      *
4380      * <pre>
4381      * This flag controls the spell-check feature. If false, the
4382      * service attempts to correct a misspelled query,
4383      * for example, "enginee" is corrected to "engineer".
4384      * Defaults to false: a spell check is performed.
4385      * </pre>
4386      *
4387      * <code>bool disable_spell_check = 9;</code>
4388      *
4389      * @param value The disableSpellCheck to set.
4390      * @return This builder for chaining.
4391      */
setDisableSpellCheck(boolean value)4392     public Builder setDisableSpellCheck(boolean value) {
4393 
4394       disableSpellCheck_ = value;
4395       bitField0_ |= 0x00000200;
4396       onChanged();
4397       return this;
4398     }
4399     /**
4400      *
4401      *
4402      * <pre>
4403      * This flag controls the spell-check feature. If false, the
4404      * service attempts to correct a misspelled query,
4405      * for example, "enginee" is corrected to "engineer".
4406      * Defaults to false: a spell check is performed.
4407      * </pre>
4408      *
4409      * <code>bool disable_spell_check = 9;</code>
4410      *
4411      * @return This builder for chaining.
4412      */
clearDisableSpellCheck()4413     public Builder clearDisableSpellCheck() {
4414       bitField0_ = (bitField0_ & ~0x00000200);
4415       disableSpellCheck_ = false;
4416       onChanged();
4417       return this;
4418     }
4419 
4420     private java.util.List<java.lang.Integer> employmentTypes_ = java.util.Collections.emptyList();
4421 
ensureEmploymentTypesIsMutable()4422     private void ensureEmploymentTypesIsMutable() {
4423       if (!((bitField0_ & 0x00000400) != 0)) {
4424         employmentTypes_ = new java.util.ArrayList<java.lang.Integer>(employmentTypes_);
4425         bitField0_ |= 0x00000400;
4426       }
4427     }
4428     /**
4429      *
4430      *
4431      * <pre>
4432      * The employment type filter specifies the employment type of jobs to
4433      * search against, such as
4434      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4435      * If a value isn't specified, jobs in the search results includes any
4436      * employment type.
4437      * If multiple values are specified, jobs in the search results include
4438      * any of the specified employment types.
4439      * </pre>
4440      *
4441      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4442      *
4443      * @return A list containing the employmentTypes.
4444      */
getEmploymentTypesList()4445     public java.util.List<com.google.cloud.talent.v4.EmploymentType> getEmploymentTypesList() {
4446       return new com.google.protobuf.Internal.ListAdapter<
4447           java.lang.Integer, com.google.cloud.talent.v4.EmploymentType>(
4448           employmentTypes_, employmentTypes_converter_);
4449     }
4450     /**
4451      *
4452      *
4453      * <pre>
4454      * The employment type filter specifies the employment type of jobs to
4455      * search against, such as
4456      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4457      * If a value isn't specified, jobs in the search results includes any
4458      * employment type.
4459      * If multiple values are specified, jobs in the search results include
4460      * any of the specified employment types.
4461      * </pre>
4462      *
4463      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4464      *
4465      * @return The count of employmentTypes.
4466      */
getEmploymentTypesCount()4467     public int getEmploymentTypesCount() {
4468       return employmentTypes_.size();
4469     }
4470     /**
4471      *
4472      *
4473      * <pre>
4474      * The employment type filter specifies the employment type of jobs to
4475      * search against, such as
4476      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4477      * If a value isn't specified, jobs in the search results includes any
4478      * employment type.
4479      * If multiple values are specified, jobs in the search results include
4480      * any of the specified employment types.
4481      * </pre>
4482      *
4483      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4484      *
4485      * @param index The index of the element to return.
4486      * @return The employmentTypes at the given index.
4487      */
getEmploymentTypes(int index)4488     public com.google.cloud.talent.v4.EmploymentType getEmploymentTypes(int index) {
4489       return employmentTypes_converter_.convert(employmentTypes_.get(index));
4490     }
4491     /**
4492      *
4493      *
4494      * <pre>
4495      * The employment type filter specifies the employment type of jobs to
4496      * search against, such as
4497      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4498      * If a value isn't specified, jobs in the search results includes any
4499      * employment type.
4500      * If multiple values are specified, jobs in the search results include
4501      * any of the specified employment types.
4502      * </pre>
4503      *
4504      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4505      *
4506      * @param index The index to set the value at.
4507      * @param value The employmentTypes to set.
4508      * @return This builder for chaining.
4509      */
setEmploymentTypes(int index, com.google.cloud.talent.v4.EmploymentType value)4510     public Builder setEmploymentTypes(int index, com.google.cloud.talent.v4.EmploymentType value) {
4511       if (value == null) {
4512         throw new NullPointerException();
4513       }
4514       ensureEmploymentTypesIsMutable();
4515       employmentTypes_.set(index, value.getNumber());
4516       onChanged();
4517       return this;
4518     }
4519     /**
4520      *
4521      *
4522      * <pre>
4523      * The employment type filter specifies the employment type of jobs to
4524      * search against, such as
4525      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4526      * If a value isn't specified, jobs in the search results includes any
4527      * employment type.
4528      * If multiple values are specified, jobs in the search results include
4529      * any of the specified employment types.
4530      * </pre>
4531      *
4532      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4533      *
4534      * @param value The employmentTypes to add.
4535      * @return This builder for chaining.
4536      */
addEmploymentTypes(com.google.cloud.talent.v4.EmploymentType value)4537     public Builder addEmploymentTypes(com.google.cloud.talent.v4.EmploymentType value) {
4538       if (value == null) {
4539         throw new NullPointerException();
4540       }
4541       ensureEmploymentTypesIsMutable();
4542       employmentTypes_.add(value.getNumber());
4543       onChanged();
4544       return this;
4545     }
4546     /**
4547      *
4548      *
4549      * <pre>
4550      * The employment type filter specifies the employment type of jobs to
4551      * search against, such as
4552      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4553      * If a value isn't specified, jobs in the search results includes any
4554      * employment type.
4555      * If multiple values are specified, jobs in the search results include
4556      * any of the specified employment types.
4557      * </pre>
4558      *
4559      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4560      *
4561      * @param values The employmentTypes to add.
4562      * @return This builder for chaining.
4563      */
addAllEmploymentTypes( java.lang.Iterable<? extends com.google.cloud.talent.v4.EmploymentType> values)4564     public Builder addAllEmploymentTypes(
4565         java.lang.Iterable<? extends com.google.cloud.talent.v4.EmploymentType> values) {
4566       ensureEmploymentTypesIsMutable();
4567       for (com.google.cloud.talent.v4.EmploymentType value : values) {
4568         employmentTypes_.add(value.getNumber());
4569       }
4570       onChanged();
4571       return this;
4572     }
4573     /**
4574      *
4575      *
4576      * <pre>
4577      * The employment type filter specifies the employment type of jobs to
4578      * search against, such as
4579      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4580      * If a value isn't specified, jobs in the search results includes any
4581      * employment type.
4582      * If multiple values are specified, jobs in the search results include
4583      * any of the specified employment types.
4584      * </pre>
4585      *
4586      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4587      *
4588      * @return This builder for chaining.
4589      */
clearEmploymentTypes()4590     public Builder clearEmploymentTypes() {
4591       employmentTypes_ = java.util.Collections.emptyList();
4592       bitField0_ = (bitField0_ & ~0x00000400);
4593       onChanged();
4594       return this;
4595     }
4596     /**
4597      *
4598      *
4599      * <pre>
4600      * The employment type filter specifies the employment type of jobs to
4601      * search against, such as
4602      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4603      * If a value isn't specified, jobs in the search results includes any
4604      * employment type.
4605      * If multiple values are specified, jobs in the search results include
4606      * any of the specified employment types.
4607      * </pre>
4608      *
4609      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4610      *
4611      * @return A list containing the enum numeric values on the wire for employmentTypes.
4612      */
getEmploymentTypesValueList()4613     public java.util.List<java.lang.Integer> getEmploymentTypesValueList() {
4614       return java.util.Collections.unmodifiableList(employmentTypes_);
4615     }
4616     /**
4617      *
4618      *
4619      * <pre>
4620      * The employment type filter specifies the employment type of jobs to
4621      * search against, such as
4622      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4623      * If a value isn't specified, jobs in the search results includes any
4624      * employment type.
4625      * If multiple values are specified, jobs in the search results include
4626      * any of the specified employment types.
4627      * </pre>
4628      *
4629      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4630      *
4631      * @param index The index of the value to return.
4632      * @return The enum numeric value on the wire of employmentTypes at the given index.
4633      */
getEmploymentTypesValue(int index)4634     public int getEmploymentTypesValue(int index) {
4635       return employmentTypes_.get(index);
4636     }
4637     /**
4638      *
4639      *
4640      * <pre>
4641      * The employment type filter specifies the employment type of jobs to
4642      * search against, such as
4643      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4644      * If a value isn't specified, jobs in the search results includes any
4645      * employment type.
4646      * If multiple values are specified, jobs in the search results include
4647      * any of the specified employment types.
4648      * </pre>
4649      *
4650      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4651      *
4652      * @param index The index to set the value at.
4653      * @param value The enum numeric value on the wire for employmentTypes to set.
4654      * @return This builder for chaining.
4655      */
setEmploymentTypesValue(int index, int value)4656     public Builder setEmploymentTypesValue(int index, int value) {
4657       ensureEmploymentTypesIsMutable();
4658       employmentTypes_.set(index, value);
4659       onChanged();
4660       return this;
4661     }
4662     /**
4663      *
4664      *
4665      * <pre>
4666      * The employment type filter specifies the employment type of jobs to
4667      * search against, such as
4668      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4669      * If a value isn't specified, jobs in the search results includes any
4670      * employment type.
4671      * If multiple values are specified, jobs in the search results include
4672      * any of the specified employment types.
4673      * </pre>
4674      *
4675      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4676      *
4677      * @param value The enum numeric value on the wire for employmentTypes to add.
4678      * @return This builder for chaining.
4679      */
addEmploymentTypesValue(int value)4680     public Builder addEmploymentTypesValue(int value) {
4681       ensureEmploymentTypesIsMutable();
4682       employmentTypes_.add(value);
4683       onChanged();
4684       return this;
4685     }
4686     /**
4687      *
4688      *
4689      * <pre>
4690      * The employment type filter specifies the employment type of jobs to
4691      * search against, such as
4692      * [EmploymentType.FULL_TIME][google.cloud.talent.v4.EmploymentType.FULL_TIME].
4693      * If a value isn't specified, jobs in the search results includes any
4694      * employment type.
4695      * If multiple values are specified, jobs in the search results include
4696      * any of the specified employment types.
4697      * </pre>
4698      *
4699      * <code>repeated .google.cloud.talent.v4.EmploymentType employment_types = 10;</code>
4700      *
4701      * @param values The enum numeric values on the wire for employmentTypes to add.
4702      * @return This builder for chaining.
4703      */
addAllEmploymentTypesValue(java.lang.Iterable<java.lang.Integer> values)4704     public Builder addAllEmploymentTypesValue(java.lang.Iterable<java.lang.Integer> values) {
4705       ensureEmploymentTypesIsMutable();
4706       for (int value : values) {
4707         employmentTypes_.add(value);
4708       }
4709       onChanged();
4710       return this;
4711     }
4712 
4713     private com.google.protobuf.LazyStringList languageCodes_ =
4714         com.google.protobuf.LazyStringArrayList.EMPTY;
4715 
ensureLanguageCodesIsMutable()4716     private void ensureLanguageCodesIsMutable() {
4717       if (!((bitField0_ & 0x00000800) != 0)) {
4718         languageCodes_ = new com.google.protobuf.LazyStringArrayList(languageCodes_);
4719         bitField0_ |= 0x00000800;
4720       }
4721     }
4722     /**
4723      *
4724      *
4725      * <pre>
4726      * This filter specifies the locale of jobs to search against,
4727      * for example, "en-US".
4728      * If a value isn't specified, the search results can contain jobs in any
4729      * locale.
4730      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4731      * For more information, see
4732      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4733      * At most 10 language code filters are allowed.
4734      * </pre>
4735      *
4736      * <code>repeated string language_codes = 11;</code>
4737      *
4738      * @return A list containing the languageCodes.
4739      */
getLanguageCodesList()4740     public com.google.protobuf.ProtocolStringList getLanguageCodesList() {
4741       return languageCodes_.getUnmodifiableView();
4742     }
4743     /**
4744      *
4745      *
4746      * <pre>
4747      * This filter specifies the locale of jobs to search against,
4748      * for example, "en-US".
4749      * If a value isn't specified, the search results can contain jobs in any
4750      * locale.
4751      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4752      * For more information, see
4753      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4754      * At most 10 language code filters are allowed.
4755      * </pre>
4756      *
4757      * <code>repeated string language_codes = 11;</code>
4758      *
4759      * @return The count of languageCodes.
4760      */
getLanguageCodesCount()4761     public int getLanguageCodesCount() {
4762       return languageCodes_.size();
4763     }
4764     /**
4765      *
4766      *
4767      * <pre>
4768      * This filter specifies the locale of jobs to search against,
4769      * for example, "en-US".
4770      * If a value isn't specified, the search results can contain jobs in any
4771      * locale.
4772      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4773      * For more information, see
4774      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4775      * At most 10 language code filters are allowed.
4776      * </pre>
4777      *
4778      * <code>repeated string language_codes = 11;</code>
4779      *
4780      * @param index The index of the element to return.
4781      * @return The languageCodes at the given index.
4782      */
getLanguageCodes(int index)4783     public java.lang.String getLanguageCodes(int index) {
4784       return languageCodes_.get(index);
4785     }
4786     /**
4787      *
4788      *
4789      * <pre>
4790      * This filter specifies the locale of jobs to search against,
4791      * for example, "en-US".
4792      * If a value isn't specified, the search results can contain jobs in any
4793      * locale.
4794      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4795      * For more information, see
4796      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4797      * At most 10 language code filters are allowed.
4798      * </pre>
4799      *
4800      * <code>repeated string language_codes = 11;</code>
4801      *
4802      * @param index The index of the value to return.
4803      * @return The bytes of the languageCodes at the given index.
4804      */
getLanguageCodesBytes(int index)4805     public com.google.protobuf.ByteString getLanguageCodesBytes(int index) {
4806       return languageCodes_.getByteString(index);
4807     }
4808     /**
4809      *
4810      *
4811      * <pre>
4812      * This filter specifies the locale of jobs to search against,
4813      * for example, "en-US".
4814      * If a value isn't specified, the search results can contain jobs in any
4815      * locale.
4816      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4817      * For more information, see
4818      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4819      * At most 10 language code filters are allowed.
4820      * </pre>
4821      *
4822      * <code>repeated string language_codes = 11;</code>
4823      *
4824      * @param index The index to set the value at.
4825      * @param value The languageCodes to set.
4826      * @return This builder for chaining.
4827      */
setLanguageCodes(int index, java.lang.String value)4828     public Builder setLanguageCodes(int index, java.lang.String value) {
4829       if (value == null) {
4830         throw new NullPointerException();
4831       }
4832       ensureLanguageCodesIsMutable();
4833       languageCodes_.set(index, value);
4834       onChanged();
4835       return this;
4836     }
4837     /**
4838      *
4839      *
4840      * <pre>
4841      * This filter specifies the locale of jobs to search against,
4842      * for example, "en-US".
4843      * If a value isn't specified, the search results can contain jobs in any
4844      * locale.
4845      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4846      * For more information, see
4847      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4848      * At most 10 language code filters are allowed.
4849      * </pre>
4850      *
4851      * <code>repeated string language_codes = 11;</code>
4852      *
4853      * @param value The languageCodes to add.
4854      * @return This builder for chaining.
4855      */
addLanguageCodes(java.lang.String value)4856     public Builder addLanguageCodes(java.lang.String value) {
4857       if (value == null) {
4858         throw new NullPointerException();
4859       }
4860       ensureLanguageCodesIsMutable();
4861       languageCodes_.add(value);
4862       onChanged();
4863       return this;
4864     }
4865     /**
4866      *
4867      *
4868      * <pre>
4869      * This filter specifies the locale of jobs to search against,
4870      * for example, "en-US".
4871      * If a value isn't specified, the search results can contain jobs in any
4872      * locale.
4873      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4874      * For more information, see
4875      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4876      * At most 10 language code filters are allowed.
4877      * </pre>
4878      *
4879      * <code>repeated string language_codes = 11;</code>
4880      *
4881      * @param values The languageCodes to add.
4882      * @return This builder for chaining.
4883      */
addAllLanguageCodes(java.lang.Iterable<java.lang.String> values)4884     public Builder addAllLanguageCodes(java.lang.Iterable<java.lang.String> values) {
4885       ensureLanguageCodesIsMutable();
4886       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, languageCodes_);
4887       onChanged();
4888       return this;
4889     }
4890     /**
4891      *
4892      *
4893      * <pre>
4894      * This filter specifies the locale of jobs to search against,
4895      * for example, "en-US".
4896      * If a value isn't specified, the search results can contain jobs in any
4897      * locale.
4898      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4899      * For more information, see
4900      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4901      * At most 10 language code filters are allowed.
4902      * </pre>
4903      *
4904      * <code>repeated string language_codes = 11;</code>
4905      *
4906      * @return This builder for chaining.
4907      */
clearLanguageCodes()4908     public Builder clearLanguageCodes() {
4909       languageCodes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
4910       bitField0_ = (bitField0_ & ~0x00000800);
4911       onChanged();
4912       return this;
4913     }
4914     /**
4915      *
4916      *
4917      * <pre>
4918      * This filter specifies the locale of jobs to search against,
4919      * for example, "en-US".
4920      * If a value isn't specified, the search results can contain jobs in any
4921      * locale.
4922      * Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
4923      * For more information, see
4924      * [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
4925      * At most 10 language code filters are allowed.
4926      * </pre>
4927      *
4928      * <code>repeated string language_codes = 11;</code>
4929      *
4930      * @param value The bytes of the languageCodes to add.
4931      * @return This builder for chaining.
4932      */
addLanguageCodesBytes(com.google.protobuf.ByteString value)4933     public Builder addLanguageCodesBytes(com.google.protobuf.ByteString value) {
4934       if (value == null) {
4935         throw new NullPointerException();
4936       }
4937       checkByteStringIsUtf8(value);
4938       ensureLanguageCodesIsMutable();
4939       languageCodes_.add(value);
4940       onChanged();
4941       return this;
4942     }
4943 
4944     private com.google.cloud.talent.v4.TimestampRange publishTimeRange_;
4945     private com.google.protobuf.SingleFieldBuilderV3<
4946             com.google.cloud.talent.v4.TimestampRange,
4947             com.google.cloud.talent.v4.TimestampRange.Builder,
4948             com.google.cloud.talent.v4.TimestampRangeOrBuilder>
4949         publishTimeRangeBuilder_;
4950     /**
4951      *
4952      *
4953      * <pre>
4954      * Jobs published within a range specified by this filter are searched
4955      * against.
4956      * </pre>
4957      *
4958      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
4959      *
4960      * @return Whether the publishTimeRange field is set.
4961      */
hasPublishTimeRange()4962     public boolean hasPublishTimeRange() {
4963       return ((bitField0_ & 0x00001000) != 0);
4964     }
4965     /**
4966      *
4967      *
4968      * <pre>
4969      * Jobs published within a range specified by this filter are searched
4970      * against.
4971      * </pre>
4972      *
4973      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
4974      *
4975      * @return The publishTimeRange.
4976      */
getPublishTimeRange()4977     public com.google.cloud.talent.v4.TimestampRange getPublishTimeRange() {
4978       if (publishTimeRangeBuilder_ == null) {
4979         return publishTimeRange_ == null
4980             ? com.google.cloud.talent.v4.TimestampRange.getDefaultInstance()
4981             : publishTimeRange_;
4982       } else {
4983         return publishTimeRangeBuilder_.getMessage();
4984       }
4985     }
4986     /**
4987      *
4988      *
4989      * <pre>
4990      * Jobs published within a range specified by this filter are searched
4991      * against.
4992      * </pre>
4993      *
4994      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
4995      */
setPublishTimeRange(com.google.cloud.talent.v4.TimestampRange value)4996     public Builder setPublishTimeRange(com.google.cloud.talent.v4.TimestampRange value) {
4997       if (publishTimeRangeBuilder_ == null) {
4998         if (value == null) {
4999           throw new NullPointerException();
5000         }
5001         publishTimeRange_ = value;
5002       } else {
5003         publishTimeRangeBuilder_.setMessage(value);
5004       }
5005       bitField0_ |= 0x00001000;
5006       onChanged();
5007       return this;
5008     }
5009     /**
5010      *
5011      *
5012      * <pre>
5013      * Jobs published within a range specified by this filter are searched
5014      * against.
5015      * </pre>
5016      *
5017      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5018      */
setPublishTimeRange( com.google.cloud.talent.v4.TimestampRange.Builder builderForValue)5019     public Builder setPublishTimeRange(
5020         com.google.cloud.talent.v4.TimestampRange.Builder builderForValue) {
5021       if (publishTimeRangeBuilder_ == null) {
5022         publishTimeRange_ = builderForValue.build();
5023       } else {
5024         publishTimeRangeBuilder_.setMessage(builderForValue.build());
5025       }
5026       bitField0_ |= 0x00001000;
5027       onChanged();
5028       return this;
5029     }
5030     /**
5031      *
5032      *
5033      * <pre>
5034      * Jobs published within a range specified by this filter are searched
5035      * against.
5036      * </pre>
5037      *
5038      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5039      */
mergePublishTimeRange(com.google.cloud.talent.v4.TimestampRange value)5040     public Builder mergePublishTimeRange(com.google.cloud.talent.v4.TimestampRange value) {
5041       if (publishTimeRangeBuilder_ == null) {
5042         if (((bitField0_ & 0x00001000) != 0)
5043             && publishTimeRange_ != null
5044             && publishTimeRange_
5045                 != com.google.cloud.talent.v4.TimestampRange.getDefaultInstance()) {
5046           getPublishTimeRangeBuilder().mergeFrom(value);
5047         } else {
5048           publishTimeRange_ = value;
5049         }
5050       } else {
5051         publishTimeRangeBuilder_.mergeFrom(value);
5052       }
5053       bitField0_ |= 0x00001000;
5054       onChanged();
5055       return this;
5056     }
5057     /**
5058      *
5059      *
5060      * <pre>
5061      * Jobs published within a range specified by this filter are searched
5062      * against.
5063      * </pre>
5064      *
5065      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5066      */
clearPublishTimeRange()5067     public Builder clearPublishTimeRange() {
5068       bitField0_ = (bitField0_ & ~0x00001000);
5069       publishTimeRange_ = null;
5070       if (publishTimeRangeBuilder_ != null) {
5071         publishTimeRangeBuilder_.dispose();
5072         publishTimeRangeBuilder_ = null;
5073       }
5074       onChanged();
5075       return this;
5076     }
5077     /**
5078      *
5079      *
5080      * <pre>
5081      * Jobs published within a range specified by this filter are searched
5082      * against.
5083      * </pre>
5084      *
5085      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5086      */
getPublishTimeRangeBuilder()5087     public com.google.cloud.talent.v4.TimestampRange.Builder getPublishTimeRangeBuilder() {
5088       bitField0_ |= 0x00001000;
5089       onChanged();
5090       return getPublishTimeRangeFieldBuilder().getBuilder();
5091     }
5092     /**
5093      *
5094      *
5095      * <pre>
5096      * Jobs published within a range specified by this filter are searched
5097      * against.
5098      * </pre>
5099      *
5100      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5101      */
getPublishTimeRangeOrBuilder()5102     public com.google.cloud.talent.v4.TimestampRangeOrBuilder getPublishTimeRangeOrBuilder() {
5103       if (publishTimeRangeBuilder_ != null) {
5104         return publishTimeRangeBuilder_.getMessageOrBuilder();
5105       } else {
5106         return publishTimeRange_ == null
5107             ? com.google.cloud.talent.v4.TimestampRange.getDefaultInstance()
5108             : publishTimeRange_;
5109       }
5110     }
5111     /**
5112      *
5113      *
5114      * <pre>
5115      * Jobs published within a range specified by this filter are searched
5116      * against.
5117      * </pre>
5118      *
5119      * <code>.google.cloud.talent.v4.TimestampRange publish_time_range = 12;</code>
5120      */
5121     private com.google.protobuf.SingleFieldBuilderV3<
5122             com.google.cloud.talent.v4.TimestampRange,
5123             com.google.cloud.talent.v4.TimestampRange.Builder,
5124             com.google.cloud.talent.v4.TimestampRangeOrBuilder>
getPublishTimeRangeFieldBuilder()5125         getPublishTimeRangeFieldBuilder() {
5126       if (publishTimeRangeBuilder_ == null) {
5127         publishTimeRangeBuilder_ =
5128             new com.google.protobuf.SingleFieldBuilderV3<
5129                 com.google.cloud.talent.v4.TimestampRange,
5130                 com.google.cloud.talent.v4.TimestampRange.Builder,
5131                 com.google.cloud.talent.v4.TimestampRangeOrBuilder>(
5132                 getPublishTimeRange(), getParentForChildren(), isClean());
5133         publishTimeRange_ = null;
5134       }
5135       return publishTimeRangeBuilder_;
5136     }
5137 
5138     private com.google.protobuf.LazyStringList excludedJobs_ =
5139         com.google.protobuf.LazyStringArrayList.EMPTY;
5140 
ensureExcludedJobsIsMutable()5141     private void ensureExcludedJobsIsMutable() {
5142       if (!((bitField0_ & 0x00002000) != 0)) {
5143         excludedJobs_ = new com.google.protobuf.LazyStringArrayList(excludedJobs_);
5144         bitField0_ |= 0x00002000;
5145       }
5146     }
5147     /**
5148      *
5149      *
5150      * <pre>
5151      * This filter specifies a list of job names to be excluded during search.
5152      * At most 400 excluded job names are allowed.
5153      * </pre>
5154      *
5155      * <code>repeated string excluded_jobs = 13;</code>
5156      *
5157      * @return A list containing the excludedJobs.
5158      */
getExcludedJobsList()5159     public com.google.protobuf.ProtocolStringList getExcludedJobsList() {
5160       return excludedJobs_.getUnmodifiableView();
5161     }
5162     /**
5163      *
5164      *
5165      * <pre>
5166      * This filter specifies a list of job names to be excluded during search.
5167      * At most 400 excluded job names are allowed.
5168      * </pre>
5169      *
5170      * <code>repeated string excluded_jobs = 13;</code>
5171      *
5172      * @return The count of excludedJobs.
5173      */
getExcludedJobsCount()5174     public int getExcludedJobsCount() {
5175       return excludedJobs_.size();
5176     }
5177     /**
5178      *
5179      *
5180      * <pre>
5181      * This filter specifies a list of job names to be excluded during search.
5182      * At most 400 excluded job names are allowed.
5183      * </pre>
5184      *
5185      * <code>repeated string excluded_jobs = 13;</code>
5186      *
5187      * @param index The index of the element to return.
5188      * @return The excludedJobs at the given index.
5189      */
getExcludedJobs(int index)5190     public java.lang.String getExcludedJobs(int index) {
5191       return excludedJobs_.get(index);
5192     }
5193     /**
5194      *
5195      *
5196      * <pre>
5197      * This filter specifies a list of job names to be excluded during search.
5198      * At most 400 excluded job names are allowed.
5199      * </pre>
5200      *
5201      * <code>repeated string excluded_jobs = 13;</code>
5202      *
5203      * @param index The index of the value to return.
5204      * @return The bytes of the excludedJobs at the given index.
5205      */
getExcludedJobsBytes(int index)5206     public com.google.protobuf.ByteString getExcludedJobsBytes(int index) {
5207       return excludedJobs_.getByteString(index);
5208     }
5209     /**
5210      *
5211      *
5212      * <pre>
5213      * This filter specifies a list of job names to be excluded during search.
5214      * At most 400 excluded job names are allowed.
5215      * </pre>
5216      *
5217      * <code>repeated string excluded_jobs = 13;</code>
5218      *
5219      * @param index The index to set the value at.
5220      * @param value The excludedJobs to set.
5221      * @return This builder for chaining.
5222      */
setExcludedJobs(int index, java.lang.String value)5223     public Builder setExcludedJobs(int index, java.lang.String value) {
5224       if (value == null) {
5225         throw new NullPointerException();
5226       }
5227       ensureExcludedJobsIsMutable();
5228       excludedJobs_.set(index, value);
5229       onChanged();
5230       return this;
5231     }
5232     /**
5233      *
5234      *
5235      * <pre>
5236      * This filter specifies a list of job names to be excluded during search.
5237      * At most 400 excluded job names are allowed.
5238      * </pre>
5239      *
5240      * <code>repeated string excluded_jobs = 13;</code>
5241      *
5242      * @param value The excludedJobs to add.
5243      * @return This builder for chaining.
5244      */
addExcludedJobs(java.lang.String value)5245     public Builder addExcludedJobs(java.lang.String value) {
5246       if (value == null) {
5247         throw new NullPointerException();
5248       }
5249       ensureExcludedJobsIsMutable();
5250       excludedJobs_.add(value);
5251       onChanged();
5252       return this;
5253     }
5254     /**
5255      *
5256      *
5257      * <pre>
5258      * This filter specifies a list of job names to be excluded during search.
5259      * At most 400 excluded job names are allowed.
5260      * </pre>
5261      *
5262      * <code>repeated string excluded_jobs = 13;</code>
5263      *
5264      * @param values The excludedJobs to add.
5265      * @return This builder for chaining.
5266      */
addAllExcludedJobs(java.lang.Iterable<java.lang.String> values)5267     public Builder addAllExcludedJobs(java.lang.Iterable<java.lang.String> values) {
5268       ensureExcludedJobsIsMutable();
5269       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, excludedJobs_);
5270       onChanged();
5271       return this;
5272     }
5273     /**
5274      *
5275      *
5276      * <pre>
5277      * This filter specifies a list of job names to be excluded during search.
5278      * At most 400 excluded job names are allowed.
5279      * </pre>
5280      *
5281      * <code>repeated string excluded_jobs = 13;</code>
5282      *
5283      * @return This builder for chaining.
5284      */
clearExcludedJobs()5285     public Builder clearExcludedJobs() {
5286       excludedJobs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
5287       bitField0_ = (bitField0_ & ~0x00002000);
5288       onChanged();
5289       return this;
5290     }
5291     /**
5292      *
5293      *
5294      * <pre>
5295      * This filter specifies a list of job names to be excluded during search.
5296      * At most 400 excluded job names are allowed.
5297      * </pre>
5298      *
5299      * <code>repeated string excluded_jobs = 13;</code>
5300      *
5301      * @param value The bytes of the excludedJobs to add.
5302      * @return This builder for chaining.
5303      */
addExcludedJobsBytes(com.google.protobuf.ByteString value)5304     public Builder addExcludedJobsBytes(com.google.protobuf.ByteString value) {
5305       if (value == null) {
5306         throw new NullPointerException();
5307       }
5308       checkByteStringIsUtf8(value);
5309       ensureExcludedJobsIsMutable();
5310       excludedJobs_.add(value);
5311       onChanged();
5312       return this;
5313     }
5314 
5315     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)5316     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
5317       return super.setUnknownFields(unknownFields);
5318     }
5319 
5320     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)5321     public final Builder mergeUnknownFields(
5322         final com.google.protobuf.UnknownFieldSet unknownFields) {
5323       return super.mergeUnknownFields(unknownFields);
5324     }
5325 
5326     // @@protoc_insertion_point(builder_scope:google.cloud.talent.v4.JobQuery)
5327   }
5328 
5329   // @@protoc_insertion_point(class_scope:google.cloud.talent.v4.JobQuery)
5330   private static final com.google.cloud.talent.v4.JobQuery DEFAULT_INSTANCE;
5331 
5332   static {
5333     DEFAULT_INSTANCE = new com.google.cloud.talent.v4.JobQuery();
5334   }
5335 
getDefaultInstance()5336   public static com.google.cloud.talent.v4.JobQuery getDefaultInstance() {
5337     return DEFAULT_INSTANCE;
5338   }
5339 
5340   private static final com.google.protobuf.Parser<JobQuery> PARSER =
5341       new com.google.protobuf.AbstractParser<JobQuery>() {
5342         @java.lang.Override
5343         public JobQuery parsePartialFrom(
5344             com.google.protobuf.CodedInputStream input,
5345             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5346             throws com.google.protobuf.InvalidProtocolBufferException {
5347           Builder builder = newBuilder();
5348           try {
5349             builder.mergeFrom(input, extensionRegistry);
5350           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5351             throw e.setUnfinishedMessage(builder.buildPartial());
5352           } catch (com.google.protobuf.UninitializedMessageException e) {
5353             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
5354           } catch (java.io.IOException e) {
5355             throw new com.google.protobuf.InvalidProtocolBufferException(e)
5356                 .setUnfinishedMessage(builder.buildPartial());
5357           }
5358           return builder.buildPartial();
5359         }
5360       };
5361 
parser()5362   public static com.google.protobuf.Parser<JobQuery> parser() {
5363     return PARSER;
5364   }
5365 
5366   @java.lang.Override
getParserForType()5367   public com.google.protobuf.Parser<JobQuery> getParserForType() {
5368     return PARSER;
5369   }
5370 
5371   @java.lang.Override
getDefaultInstanceForType()5372   public com.google.cloud.talent.v4.JobQuery getDefaultInstanceForType() {
5373     return DEFAULT_INSTANCE;
5374   }
5375 }
5376