@@ -105,9 +105,9 @@ public class IdTokenCredentials extends OAuth2Credentials {
105105
106106 private static final long serialVersionUID = -2133257318957588431L ;
107107
108- private IdTokenProvider idTokenProvider ;
108+ private final IdTokenProvider idTokenProvider ;
109+ private final List <IdTokenProvider .Option > options ;
109110 private String targetAudience ;
110- private List <IdTokenProvider .Option > options ;
111111
112112 private IdTokenCredentials (Builder builder ) {
113113 this .idTokenProvider = Preconditions .checkNotNull (builder .getIdTokenProvider ());
@@ -131,7 +131,7 @@ public IdToken getIdToken() {
131131
132132 @ Override
133133 public int hashCode () {
134- return Objects .hash (options , targetAudience );
134+ return Objects .hash (idTokenProvider , options , targetAudience );
135135 }
136136
137137 @ Override
@@ -146,7 +146,8 @@ public boolean equals(Object obj) {
146146 }
147147 IdTokenCredentials other = (IdTokenCredentials ) obj ;
148148 return Objects .equals (this .idTokenProvider , other .idTokenProvider )
149- && Objects .equals (this .targetAudience , other .targetAudience );
149+ && Objects .equals (this .targetAudience , other .targetAudience )
150+ && Objects .equals (this .options , other .options );
150151 }
151152
152153 @ Override
@@ -169,16 +170,29 @@ public static class Builder extends OAuth2Credentials.Builder {
169170
170171 protected Builder () {}
171172
173+ /**
174+ * Sets the provider for the ID token.
175+ *
176+ * @param idTokenProvider the provider for the ID token, cannot be null
177+ * @return the builder object
178+ */
172179 @ CanIgnoreReturnValue
173180 public Builder setIdTokenProvider (IdTokenProvider idTokenProvider ) {
174- this .idTokenProvider = idTokenProvider ;
181+ this .idTokenProvider = Preconditions . checkNotNull ( idTokenProvider ) ;
175182 return this ;
176183 }
177184
178185 public IdTokenProvider getIdTokenProvider () {
179186 return this .idTokenProvider ;
180187 }
181188
189+ /**
190+ * Sets the target audience for the ID token.
191+ *
192+ * @param targetAudience the target audience, cannot be null for non-UserCredentials. If set for
193+ * UserCredentials, the value will be ignored.
194+ * @return the builder object
195+ */
182196 @ CanIgnoreReturnValue
183197 public Builder setTargetAudience (String targetAudience ) {
184198 this .targetAudience = targetAudience ;
@@ -189,6 +203,12 @@ public String getTargetAudience() {
189203 return this .targetAudience ;
190204 }
191205
206+ /**
207+ * Sets the options for the ID token.
208+ *
209+ * @param options list of options, can be null or empty if no options are needed.
210+ * @return the builder object
211+ */
192212 @ CanIgnoreReturnValue
193213 public Builder setOptions (List <IdTokenProvider .Option > options ) {
194214 this .options = options ;
0 commit comments