File tree Expand file tree Collapse file tree 3 files changed +42
-4
lines changed
http-generator-client/src
main/java/io/avaje/http/generator/client
test/java/io/avaje/http/generator/client/clients Expand file tree Collapse file tree 3 files changed +42
-4
lines changed Original file line number Diff line number Diff line change 99
1010import static java .util .stream .Collectors .toMap ;
1111
12+ import java .util .Iterator ;
1213import java .util .List ;
1314import java .util .Map ;
1415import java .util .Optional ;
@@ -366,13 +367,36 @@ private void writePaths(Set<PathSegments.Segment> segments) {
366367 if (!segments .isEmpty ()) {
367368 writer .append (" " );
368369 }
369- for (PathSegments .Segment segment : segments ) {
370+ boolean first = true ;
371+ Iterator <Segment > iterator = segments .iterator ();
372+ boolean sentinel = true ;
373+ boolean noSlash = false ;
374+ var size = segments .size ();
375+ while (sentinel ) {
376+ PathSegments .Segment segment = iterator .hasNext () ? iterator .next () : null ;
377+ if (segment == null ) {
378+ sentinel = false ;
379+ if (size != 0 ) {
380+ writer .append ("\" )" );
381+ }
382+ continue ;
383+ }
384+ if (first ) {
385+ writer .append (".path(\" " );
386+ first = false ;
387+ }
388+ if (noSlash ) {
389+ writer .append ("/" );
390+ }
391+ noSlash = true ;
370392 if (segment .isLiteral ()) {
371- writer .append (".path( \" " ). append ( segment .literalSection ()). append ( " \" )" );
393+ writer .append (segment .literalSection ());
372394 } else if (segment .isProperty ()) {
373- writer .append (".path(" ).append (segmentPropertyMap .get (segment .name ())).append (")" );
395+
396+ writer .append ("\" + %s + \" " , segmentPropertyMap .get (segment .name ()));
397+
374398 } else {
375- writer .append (".path(" ). append ( segment .name ()). append ( ")" );
399+ writer .append (segment .name ());
376400 // TODO: matrix params
377401 }
378402 }
Original file line number Diff line number Diff line change 1+ package io .avaje .http .generator .client .clients ;
2+
3+ public class Titan {}
Original file line number Diff line number Diff line change 1+ package io .avaje .http .generator .client .clients ;
2+
3+ import io .avaje .http .api .Client ;
4+ import io .avaje .http .api .Get ;
5+
6+ @ Client
7+ public interface TitanFall {
8+
9+ @ Get ("/${titan}/${drop.point}" )
10+ Titan titanfall ();
11+ }
You can’t perform that action at this time.
0 commit comments