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 ProjectName implements ResourceName { 30 31 private static final PathTemplate PATH_TEMPLATE = 32 PathTemplate.createWithoutUrlEncoding("projects/{project}"); 33 34 private volatile Map<String, String> fieldValuesMap; 35 36 private final String project; 37 getProject()38 public String getProject() { 39 return project; 40 } 41 newBuilder()42 public static Builder newBuilder() { 43 return new Builder(); 44 } 45 toBuilder()46 public Builder toBuilder() { 47 return new Builder(this); 48 } 49 ProjectName(Builder builder)50 private ProjectName(Builder builder) { 51 project = Preconditions.checkNotNull(builder.getProject()); 52 } 53 of(String project)54 public static ProjectName of(String project) { 55 return newBuilder().setProject(project).build(); 56 } 57 format(String project)58 public static String format(String project) { 59 return newBuilder().setProject(project).build().toString(); 60 } 61 parse(String formattedString)62 public static ProjectName parse(String formattedString) { 63 if (formattedString.isEmpty()) { 64 return null; 65 } 66 Map<String, String> matchMap = 67 PATH_TEMPLATE.validatedMatch( 68 formattedString, "ProjectName.parse: formattedString not in valid format"); 69 return of(matchMap.get("project")); 70 } 71 parseList(List<String> formattedStrings)72 public static List<ProjectName> parseList(List<String> formattedStrings) { 73 List<ProjectName> list = new ArrayList<>(formattedStrings.size()); 74 for (String formattedString : formattedStrings) { 75 list.add(parse(formattedString)); 76 } 77 return list; 78 } 79 toStringList(List<ProjectName> values)80 public static List<String> toStringList(List<ProjectName> values) { 81 List<String> list = new ArrayList<String>(values.size()); 82 for (ProjectName value : values) { 83 if (value == null) { 84 list.add(""); 85 } else { 86 list.add(value.toString()); 87 } 88 } 89 return list; 90 } 91 isParsableFrom(String formattedString)92 public static boolean isParsableFrom(String formattedString) { 93 return PATH_TEMPLATE.matches(formattedString); 94 } 95 getFieldValuesMap()96 public Map<String, String> getFieldValuesMap() { 97 if (fieldValuesMap == null) { 98 synchronized (this) { 99 if (fieldValuesMap == null) { 100 ImmutableMap.Builder<String, String> fieldMapBuilder = ImmutableMap.builder(); 101 fieldMapBuilder.put("project", project); 102 fieldValuesMap = fieldMapBuilder.build(); 103 } 104 } 105 } 106 return fieldValuesMap; 107 } 108 getFieldValue(String fieldName)109 public String getFieldValue(String fieldName) { 110 return getFieldValuesMap().get(fieldName); 111 } 112 113 @Override toString()114 public String toString() { 115 return PATH_TEMPLATE.instantiate("project", project); 116 } 117 118 /** Builder for ProjectName. */ 119 public static class Builder { 120 121 private String project; 122 getProject()123 public String getProject() { 124 return project; 125 } 126 setProject(String project)127 public Builder setProject(String project) { 128 this.project = project; 129 return this; 130 } 131 Builder()132 private Builder() {} 133 Builder(ProjectName projectName)134 private Builder(ProjectName projectName) { 135 project = projectName.project; 136 } 137 build()138 public ProjectName build() { 139 return new ProjectName(this); 140 } 141 } 142 143 @Override equals(Object o)144 public boolean equals(Object o) { 145 if (o == this) { 146 return true; 147 } 148 if (o instanceof ProjectName) { 149 ProjectName that = (ProjectName) o; 150 return (this.project.equals(that.project)); 151 } 152 return false; 153 } 154 155 @Override hashCode()156 public int hashCode() { 157 int h = 1; 158 h *= 1000003; 159 h ^= project.hashCode(); 160 return h; 161 } 162 } 163