• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 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 
17 package com.google.privacy.dlp.v2;
18 
19 import com.google.api.core.BetaApi;
20 import com.google.api.pathtemplate.PathTemplate;
21 import com.google.api.pathtemplate.ValidationException;
22 import com.google.api.resourcenames.ResourceName;
23 import com.google.common.base.Preconditions;
24 import com.google.common.collect.ImmutableMap;
25 import java.util.ArrayList;
26 import java.util.List;
27 import java.util.Map;
28 import java.util.Objects;
29 import javax.annotation.Generated;
30 
31 // AUTO-GENERATED DOCUMENTATION AND CLASS.
32 @Generated("by gapic-generator-java")
33 public class JobTriggerName implements ResourceName {
34   private static final PathTemplate PROJECT_JOB_TRIGGER =
35       PathTemplate.createWithoutUrlEncoding("projects/{project}/jobTriggers/{job_trigger}");
36   private static final PathTemplate PROJECT_LOCATION_JOB_TRIGGER =
37       PathTemplate.createWithoutUrlEncoding(
38           "projects/{project}/locations/{location}/jobTriggers/{job_trigger}");
39   private volatile Map<String, String> fieldValuesMap;
40   private PathTemplate pathTemplate;
41   private String fixedValue;
42   private final String project;
43   private final String jobTrigger;
44   private final String location;
45 
46   @Deprecated
JobTriggerName()47   protected JobTriggerName() {
48     project = null;
49     jobTrigger = null;
50     location = null;
51   }
52 
JobTriggerName(Builder builder)53   private JobTriggerName(Builder builder) {
54     project = Preconditions.checkNotNull(builder.getProject());
55     jobTrigger = Preconditions.checkNotNull(builder.getJobTrigger());
56     location = null;
57     pathTemplate = PROJECT_JOB_TRIGGER;
58   }
59 
JobTriggerName(ProjectLocationJobTriggerBuilder builder)60   private JobTriggerName(ProjectLocationJobTriggerBuilder builder) {
61     project = Preconditions.checkNotNull(builder.getProject());
62     location = Preconditions.checkNotNull(builder.getLocation());
63     jobTrigger = Preconditions.checkNotNull(builder.getJobTrigger());
64     pathTemplate = PROJECT_LOCATION_JOB_TRIGGER;
65   }
66 
getProject()67   public String getProject() {
68     return project;
69   }
70 
getJobTrigger()71   public String getJobTrigger() {
72     return jobTrigger;
73   }
74 
getLocation()75   public String getLocation() {
76     return location;
77   }
78 
newBuilder()79   public static Builder newBuilder() {
80     return new Builder();
81   }
82 
83   @BetaApi("The per-pattern Builders are not stable yet and may be changed in the future.")
newProjectJobTriggerBuilder()84   public static Builder newProjectJobTriggerBuilder() {
85     return new Builder();
86   }
87 
88   @BetaApi("The per-pattern Builders are not stable yet and may be changed in the future.")
newProjectLocationJobTriggerBuilder()89   public static ProjectLocationJobTriggerBuilder newProjectLocationJobTriggerBuilder() {
90     return new ProjectLocationJobTriggerBuilder();
91   }
92 
toBuilder()93   public Builder toBuilder() {
94     return new Builder(this);
95   }
96 
of(String project, String jobTrigger)97   public static JobTriggerName of(String project, String jobTrigger) {
98     return newBuilder().setProject(project).setJobTrigger(jobTrigger).build();
99   }
100 
101   @BetaApi("The static create methods are not stable yet and may be changed in the future.")
ofProjectJobTriggerName(String project, String jobTrigger)102   public static JobTriggerName ofProjectJobTriggerName(String project, String jobTrigger) {
103     return newBuilder().setProject(project).setJobTrigger(jobTrigger).build();
104   }
105 
106   @BetaApi("The static create methods are not stable yet and may be changed in the future.")
ofProjectLocationJobTriggerName( String project, String location, String jobTrigger)107   public static JobTriggerName ofProjectLocationJobTriggerName(
108       String project, String location, String jobTrigger) {
109     return newProjectLocationJobTriggerBuilder()
110         .setProject(project)
111         .setLocation(location)
112         .setJobTrigger(jobTrigger)
113         .build();
114   }
115 
format(String project, String jobTrigger)116   public static String format(String project, String jobTrigger) {
117     return newBuilder().setProject(project).setJobTrigger(jobTrigger).build().toString();
118   }
119 
120   @BetaApi("The static format methods are not stable yet and may be changed in the future.")
formatProjectJobTriggerName(String project, String jobTrigger)121   public static String formatProjectJobTriggerName(String project, String jobTrigger) {
122     return newBuilder().setProject(project).setJobTrigger(jobTrigger).build().toString();
123   }
124 
125   @BetaApi("The static format methods are not stable yet and may be changed in the future.")
formatProjectLocationJobTriggerName( String project, String location, String jobTrigger)126   public static String formatProjectLocationJobTriggerName(
127       String project, String location, String jobTrigger) {
128     return newProjectLocationJobTriggerBuilder()
129         .setProject(project)
130         .setLocation(location)
131         .setJobTrigger(jobTrigger)
132         .build()
133         .toString();
134   }
135 
parse(String formattedString)136   public static JobTriggerName parse(String formattedString) {
137     if (formattedString.isEmpty()) {
138       return null;
139     }
140     if (PROJECT_JOB_TRIGGER.matches(formattedString)) {
141       Map<String, String> matchMap = PROJECT_JOB_TRIGGER.match(formattedString);
142       return ofProjectJobTriggerName(matchMap.get("project"), matchMap.get("job_trigger"));
143     } else if (PROJECT_LOCATION_JOB_TRIGGER.matches(formattedString)) {
144       Map<String, String> matchMap = PROJECT_LOCATION_JOB_TRIGGER.match(formattedString);
145       return ofProjectLocationJobTriggerName(
146           matchMap.get("project"), matchMap.get("location"), matchMap.get("job_trigger"));
147     }
148     throw new ValidationException("JobTriggerName.parse: formattedString not in valid format");
149   }
150 
parseList(List<String> formattedStrings)151   public static List<JobTriggerName> parseList(List<String> formattedStrings) {
152     List<JobTriggerName> list = new ArrayList<>(formattedStrings.size());
153     for (String formattedString : formattedStrings) {
154       list.add(parse(formattedString));
155     }
156     return list;
157   }
158 
toStringList(List<JobTriggerName> values)159   public static List<String> toStringList(List<JobTriggerName> values) {
160     List<String> list = new ArrayList<>(values.size());
161     for (JobTriggerName value : values) {
162       if (value == null) {
163         list.add("");
164       } else {
165         list.add(value.toString());
166       }
167     }
168     return list;
169   }
170 
isParsableFrom(String formattedString)171   public static boolean isParsableFrom(String formattedString) {
172     return PROJECT_JOB_TRIGGER.matches(formattedString)
173         || PROJECT_LOCATION_JOB_TRIGGER.matches(formattedString);
174   }
175 
176   @Override
getFieldValuesMap()177   public Map<String, String> getFieldValuesMap() {
178     if (fieldValuesMap == null) {
179       synchronized (this) {
180         if (fieldValuesMap == null) {
181           ImmutableMap.Builder<String, String> fieldMapBuilder = ImmutableMap.builder();
182           if (project != null) {
183             fieldMapBuilder.put("project", project);
184           }
185           if (jobTrigger != null) {
186             fieldMapBuilder.put("job_trigger", jobTrigger);
187           }
188           if (location != null) {
189             fieldMapBuilder.put("location", location);
190           }
191           fieldValuesMap = fieldMapBuilder.build();
192         }
193       }
194     }
195     return fieldValuesMap;
196   }
197 
getFieldValue(String fieldName)198   public String getFieldValue(String fieldName) {
199     return getFieldValuesMap().get(fieldName);
200   }
201 
202   @Override
toString()203   public String toString() {
204     return fixedValue != null ? fixedValue : pathTemplate.instantiate(getFieldValuesMap());
205   }
206 
207   @Override
equals(Object o)208   public boolean equals(Object o) {
209     if (o == this) {
210       return true;
211     }
212     if (o != null || getClass() == o.getClass()) {
213       JobTriggerName that = ((JobTriggerName) o);
214       return Objects.equals(this.project, that.project)
215           && Objects.equals(this.jobTrigger, that.jobTrigger)
216           && Objects.equals(this.location, that.location);
217     }
218     return false;
219   }
220 
221   @Override
hashCode()222   public int hashCode() {
223     int h = 1;
224     h *= 1000003;
225     h ^= Objects.hashCode(fixedValue);
226     h *= 1000003;
227     h ^= Objects.hashCode(project);
228     h *= 1000003;
229     h ^= Objects.hashCode(jobTrigger);
230     h *= 1000003;
231     h ^= Objects.hashCode(location);
232     return h;
233   }
234 
235   /** Builder for projects/{project}/jobTriggers/{job_trigger}. */
236   public static class Builder {
237     private String project;
238     private String jobTrigger;
239 
Builder()240     protected Builder() {}
241 
getProject()242     public String getProject() {
243       return project;
244     }
245 
getJobTrigger()246     public String getJobTrigger() {
247       return jobTrigger;
248     }
249 
setProject(String project)250     public Builder setProject(String project) {
251       this.project = project;
252       return this;
253     }
254 
setJobTrigger(String jobTrigger)255     public Builder setJobTrigger(String jobTrigger) {
256       this.jobTrigger = jobTrigger;
257       return this;
258     }
259 
Builder(JobTriggerName jobTriggerName)260     private Builder(JobTriggerName jobTriggerName) {
261       Preconditions.checkArgument(
262           Objects.equals(jobTriggerName.pathTemplate, PROJECT_JOB_TRIGGER),
263           "toBuilder is only supported when JobTriggerName has the pattern of projects/{project}/jobTriggers/{job_trigger}");
264       this.project = jobTriggerName.project;
265       this.jobTrigger = jobTriggerName.jobTrigger;
266     }
267 
build()268     public JobTriggerName build() {
269       return new JobTriggerName(this);
270     }
271   }
272 
273   /** Builder for projects/{project}/locations/{location}/jobTriggers/{job_trigger}. */
274   @BetaApi("The per-pattern Builders are not stable yet and may be changed in the future.")
275   public static class ProjectLocationJobTriggerBuilder {
276     private String project;
277     private String location;
278     private String jobTrigger;
279 
ProjectLocationJobTriggerBuilder()280     protected ProjectLocationJobTriggerBuilder() {}
281 
getProject()282     public String getProject() {
283       return project;
284     }
285 
getLocation()286     public String getLocation() {
287       return location;
288     }
289 
getJobTrigger()290     public String getJobTrigger() {
291       return jobTrigger;
292     }
293 
setProject(String project)294     public ProjectLocationJobTriggerBuilder setProject(String project) {
295       this.project = project;
296       return this;
297     }
298 
setLocation(String location)299     public ProjectLocationJobTriggerBuilder setLocation(String location) {
300       this.location = location;
301       return this;
302     }
303 
setJobTrigger(String jobTrigger)304     public ProjectLocationJobTriggerBuilder setJobTrigger(String jobTrigger) {
305       this.jobTrigger = jobTrigger;
306       return this;
307     }
308 
build()309     public JobTriggerName build() {
310       return new JobTriggerName(this);
311     }
312   }
313 }
314