• 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 
17 package io.grafeas.v1beta1;
18 
19 import com.google.api.pathtemplate.PathTemplate;
20 import com.google.api.resourcenames.ResourceName;
21 import com.google.common.base.Preconditions;
22 import com.google.common.collect.ImmutableMap;
23 import java.util.ArrayList;
24 import java.util.List;
25 import java.util.Map;
26 
27 /** AUTO-GENERATED DOCUMENTATION AND CLASS */
28 @javax.annotation.Generated("by GAPIC protoc plugin")
29 public class ScanConfigName implements ResourceName {
30 
31   private static final PathTemplate PATH_TEMPLATE =
32       PathTemplate.createWithoutUrlEncoding("projects/{project}/scanConfigs/{scan_config}");
33 
34   private volatile Map<String, String> fieldValuesMap;
35 
36   private final String project;
37   private final String scanConfig;
38 
getProject()39   public String getProject() {
40     return project;
41   }
42 
getScanConfig()43   public String getScanConfig() {
44     return scanConfig;
45   }
46 
newBuilder()47   public static Builder newBuilder() {
48     return new Builder();
49   }
50 
toBuilder()51   public Builder toBuilder() {
52     return new Builder(this);
53   }
54 
ScanConfigName(Builder builder)55   private ScanConfigName(Builder builder) {
56     project = Preconditions.checkNotNull(builder.getProject());
57     scanConfig = Preconditions.checkNotNull(builder.getScanConfig());
58   }
59 
of(String project, String scanConfig)60   public static ScanConfigName of(String project, String scanConfig) {
61     return newBuilder().setProject(project).setScanConfig(scanConfig).build();
62   }
63 
format(String project, String scanConfig)64   public static String format(String project, String scanConfig) {
65     return newBuilder().setProject(project).setScanConfig(scanConfig).build().toString();
66   }
67 
parse(String formattedString)68   public static ScanConfigName parse(String formattedString) {
69     if (formattedString.isEmpty()) {
70       return null;
71     }
72     Map<String, String> matchMap =
73         PATH_TEMPLATE.validatedMatch(
74             formattedString, "ScanConfigName.parse: formattedString not in valid format");
75     return of(matchMap.get("project"), matchMap.get("scan_config"));
76   }
77 
parseList(List<String> formattedStrings)78   public static List<ScanConfigName> parseList(List<String> formattedStrings) {
79     List<ScanConfigName> list = new ArrayList<>(formattedStrings.size());
80     for (String formattedString : formattedStrings) {
81       list.add(parse(formattedString));
82     }
83     return list;
84   }
85 
toStringList(List<ScanConfigName> values)86   public static List<String> toStringList(List<ScanConfigName> values) {
87     List<String> list = new ArrayList<String>(values.size());
88     for (ScanConfigName value : values) {
89       if (value == null) {
90         list.add("");
91       } else {
92         list.add(value.toString());
93       }
94     }
95     return list;
96   }
97 
isParsableFrom(String formattedString)98   public static boolean isParsableFrom(String formattedString) {
99     return PATH_TEMPLATE.matches(formattedString);
100   }
101 
getFieldValuesMap()102   public Map<String, String> getFieldValuesMap() {
103     if (fieldValuesMap == null) {
104       synchronized (this) {
105         if (fieldValuesMap == null) {
106           ImmutableMap.Builder<String, String> fieldMapBuilder = ImmutableMap.builder();
107           fieldMapBuilder.put("project", project);
108           fieldMapBuilder.put("scanConfig", scanConfig);
109           fieldValuesMap = fieldMapBuilder.build();
110         }
111       }
112     }
113     return fieldValuesMap;
114   }
115 
getFieldValue(String fieldName)116   public String getFieldValue(String fieldName) {
117     return getFieldValuesMap().get(fieldName);
118   }
119 
120   @Override
toString()121   public String toString() {
122     return PATH_TEMPLATE.instantiate("project", project, "scan_config", scanConfig);
123   }
124 
125   /** Builder for ScanConfigName. */
126   public static class Builder {
127 
128     private String project;
129     private String scanConfig;
130 
getProject()131     public String getProject() {
132       return project;
133     }
134 
getScanConfig()135     public String getScanConfig() {
136       return scanConfig;
137     }
138 
setProject(String project)139     public Builder setProject(String project) {
140       this.project = project;
141       return this;
142     }
143 
setScanConfig(String scanConfig)144     public Builder setScanConfig(String scanConfig) {
145       this.scanConfig = scanConfig;
146       return this;
147     }
148 
Builder()149     private Builder() {}
150 
Builder(ScanConfigName scanConfigName)151     private Builder(ScanConfigName scanConfigName) {
152       project = scanConfigName.project;
153       scanConfig = scanConfigName.scanConfig;
154     }
155 
build()156     public ScanConfigName build() {
157       return new ScanConfigName(this);
158     }
159   }
160 
161   @Override
equals(Object o)162   public boolean equals(Object o) {
163     if (o == this) {
164       return true;
165     }
166     if (o instanceof ScanConfigName) {
167       ScanConfigName that = (ScanConfigName) o;
168       return (this.project.equals(that.project)) && (this.scanConfig.equals(that.scanConfig));
169     }
170     return false;
171   }
172 
173   @Override
hashCode()174   public int hashCode() {
175     int h = 1;
176     h *= 1000003;
177     h ^= project.hashCode();
178     h *= 1000003;
179     h ^= scanConfig.hashCode();
180     return h;
181   }
182 }
183