@@ -138,18 +138,18 @@ private CodeBlock dnsSuffixes() {
138138 .add (", $S)" , defaultDnsSuffix );
139139 }
140140
141- if (dualStackDnsSuffix != null ) {
142- if ( supportsDualStack && supportsFips ) {
143- builder .add (".put(" )
144- .add (partitionEndpointKey (Arrays .asList ("dualstack" , "fips" )))
145- .add (", $S)" , dualStackDnsSuffix );
146- }
147-
148- if (supportsDualStack ) {
149- builder . add ( ".put(" )
150- .add (partitionEndpointKey ( Collections . singletonList ( "dualstack" )) )
151- .add (", $S)" , dualStackDnsSuffix );
152- }
141+ if (supportsDualStack && supportsFips ) {
142+ validateDualStackDnsSuffix ( dualStackDnsSuffix );
143+ builder .add (".put(" )
144+ .add (partitionEndpointKey (Arrays .asList ("dualstack" , "fips" )))
145+ .add (", $S)" , dualStackDnsSuffix );
146+ }
147+
148+ if (supportsDualStack ) {
149+ validateDualStackDnsSuffix ( dualStackDnsSuffix );
150+ builder .add (".put(" )
151+ .add (partitionEndpointKey ( Collections . singletonList ( "dualstack" )))
152+ . add ( ", $S)" , dualStackDnsSuffix );
153153 }
154154
155155 return builder .add (".build()" ).build ();
@@ -174,18 +174,18 @@ private CodeBlock hostnames() {
174174 .add (", $S)" , "{service}-fips.{region}.{dnsSuffix}" );
175175 }
176176
177- if (dualStackDnsSuffix != null ) {
178- if ( supportsDualStack && supportsFips ) {
179- builder .add (".put(" )
180- .add (partitionEndpointKey (Arrays .asList ("dualstack" , "fips" )))
181- .add (", $S)" , "{service}-fips.{region}.{dnsSuffix}" );
182- }
183-
184- if (supportsDualStack ) {
185- builder . add ( ".put(" )
186- .add (partitionEndpointKey ( Collections . singletonList ( "dualstack" )) )
187- .add (", $S)" , "{service}.{region}.{dnsSuffix}" );
188- }
177+ if (supportsDualStack && supportsFips ) {
178+ validateDualStackDnsSuffix ( dualStackDnsSuffix );
179+ builder .add (".put(" )
180+ .add (partitionEndpointKey (Arrays .asList ("dualstack" , "fips" )))
181+ .add (", $S)" , "{service}-fips.{region}.{dnsSuffix}" );
182+ }
183+
184+ if (supportsDualStack ) {
185+ validateDualStackDnsSuffix ( dualStackDnsSuffix );
186+ builder .add (".put(" )
187+ .add (partitionEndpointKey ( Collections . singletonList ( "dualstack" )))
188+ . add ( ", $S)" , "{service}.{region}.{dnsSuffix}" );
189189 }
190190
191191 return builder .add (".build()" ).build ();
@@ -227,6 +227,13 @@ private MethodSpec getter(String methodName, String field) {
227227 .build ();
228228 }
229229
230+ private void validateDualStackDnsSuffix (String dualStackDnsSuffix ) {
231+ if (dualStackDnsSuffix == null ) {
232+ throw new IllegalStateException ("Partition " + partition .getId ()
233+ + " claims to support dualstack but dualStackDnsSuffix is null" );
234+ }
235+ }
236+
230237 private CodeBlock partitionEndpointKey (Collection <String > tags ) {
231238 CodeBlock .Builder result = CodeBlock .builder ();
232239 result .add ("$T.builder()" , partitionEndpointKeyClass ());
0 commit comments