public interface io.micronaut.web.router.RouteBuilder$UriNamingStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.micronaut.web.router.RouteBuilder$UriNamingStrategy
  super_class: java.lang.Object
{
  public java.lang.String resolveUri(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
        start local 1 // java.lang.Class type
         0: .line 1172
            aload 1 /* type */
            ldc Lio/micronaut/http/annotation/Controller;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.micronaut.http.annotation.Controller
            astore 2 /* annotation */
        start local 2 // io.micronaut.http.annotation.Controller annotation
         1: .line 1173
            aload 0 /* this */
            aload 2 /* annotation */
            ifnull 2
            aload 2 /* annotation */
            invokeinterface io.micronaut.http.annotation.Controller.value:()Ljava/lang/String;
            goto 3
      StackMap locals: io.micronaut.web.router.RouteBuilder$UriNamingStrategy java.lang.Class io.micronaut.http.annotation.Controller
      StackMap stack: io.micronaut.web.router.RouteBuilder$UriNamingStrategy
         2: aconst_null
      StackMap locals: io.micronaut.web.router.RouteBuilder$UriNamingStrategy java.lang.Class io.micronaut.http.annotation.Controller
      StackMap stack: io.micronaut.web.router.RouteBuilder$UriNamingStrategy java.lang.String
         3: invokeinterface io.micronaut.web.router.RouteBuilder$UriNamingStrategy.normalizeUri:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* uri */
        start local 3 // java.lang.String uri
         4: .line 1174
            aload 3 /* uri */
            ifnull 6
         5: .line 1175
            aload 3 /* uri */
            areturn
         6: .line 1177
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 47
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic io.micronaut.core.naming.conventions.TypeConvention.CONTROLLER:Lio/micronaut/core/naming/conventions/TypeConvention;
            aload 1 /* type */
            invokevirtual io.micronaut.core.naming.conventions.TypeConvention.asPropertyName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String uri
        end local 2 // io.micronaut.http.annotation.Controller annotation
        end local 1 // java.lang.Class type
        end local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/micronaut/web/router/RouteBuilder$UriNamingStrategy;
            0    7     1        type  Ljava/lang/Class<*>;
            1    7     2  annotation  Lio/micronaut/http/annotation/Controller;
            4    7     3         uri  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  public java.lang.String resolveUri(io.micronaut.inject.BeanDefinition<?>);
    descriptor: (Lio/micronaut/inject/BeanDefinition;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
        start local 1 // io.micronaut.inject.BeanDefinition beanDefinition
         0: .line 1188
            aload 1 /* beanDefinition */
            ldc Lio/micronaut/http/annotation/UriMapping;
            invokeinterface io.micronaut.inject.BeanDefinition.stringValue:(Ljava/lang/Class;)Ljava/util/Optional;
            aload 1 /* beanDefinition */
            invokedynamic get(Lio/micronaut/inject/BeanDefinition;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  io/micronaut/web/router/RouteBuilder$UriNamingStrategy.lambda$0(Lio/micronaut/inject/BeanDefinition;)Ljava/lang/String; (6 itf)
                  ()Ljava/lang/String;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* uri */
        start local 2 // java.lang.String uri
         1: .line 1191
            aload 0 /* this */
            aload 2 /* uri */
            invokeinterface io.micronaut.web.router.RouteBuilder$UriNamingStrategy.normalizeUri:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* uri */
         2: .line 1192
            aload 2 /* uri */
            ifnull 4
         3: .line 1193
            aload 2 /* uri */
            areturn
         4: .line 1196
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* beanDefinition */
            instanceof io.micronaut.inject.ProxyBeanDefinition
            ifeq 8
         5: .line 1197
            aload 1 /* beanDefinition */
            checkcast io.micronaut.inject.ProxyBeanDefinition
            astore 4 /* pbd */
        start local 4 // io.micronaut.inject.ProxyBeanDefinition pbd
         6: .line 1198
            aload 4 /* pbd */
            invokeinterface io.micronaut.inject.ProxyBeanDefinition.getTargetType:()Ljava/lang/Class;
            astore 3 /* beanType */
        end local 4 // io.micronaut.inject.ProxyBeanDefinition pbd
        start local 3 // java.lang.Class beanType
         7: .line 1199
            goto 9
        end local 3 // java.lang.Class beanType
         8: .line 1200
      StackMap locals:
      StackMap stack:
            aload 1 /* beanDefinition */
            invokeinterface io.micronaut.inject.BeanDefinition.getBeanType:()Ljava/lang/Class;
            astore 3 /* beanType */
        start local 3 // java.lang.Class beanType
         9: .line 1202
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 47
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic io.micronaut.core.naming.conventions.TypeConvention.CONTROLLER:Lio/micronaut/core/naming/conventions/TypeConvention;
            aload 3 /* beanType */
            invokevirtual io.micronaut.core.naming.conventions.TypeConvention.asPropertyName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.Class beanType
        end local 2 // java.lang.String uri
        end local 1 // io.micronaut.inject.BeanDefinition beanDefinition
        end local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lio/micronaut/web/router/RouteBuilder$UriNamingStrategy;
            0   10     1  beanDefinition  Lio/micronaut/inject/BeanDefinition<*>;
            1   10     2             uri  Ljava/lang/String;
            7    8     3        beanType  Ljava/lang/Class<*>;
            9   10     3        beanType  Ljava/lang/Class<*>;
            6    7     4             pbd  Lio/micronaut/inject/ProxyBeanDefinition;
    Signature: (Lio/micronaut/inject/BeanDefinition<*>;)Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                Name  Flags
      beanDefinition  

  public java.lang.String resolveUri(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
        start local 1 // java.lang.String property
         0: .line 1213
            aload 1 /* property */
            invokestatic io.micronaut.core.util.StringUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 1214
            ldc "/"
            areturn
         2: .line 1216
      StackMap locals:
      StackMap stack:
            aload 1 /* property */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 4
         3: .line 1217
            new java.lang.StringBuilder
            dup
            bipush 47
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* property */
            invokestatic io.micronaut.core.naming.NameUtils.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 1219
      StackMap locals:
      StackMap stack:
            aload 1 /* property */
            areturn
        end local 1 // java.lang.String property
        end local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lio/micronaut/web/router/RouteBuilder$UriNamingStrategy;
            0    5     1  property  Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
          Name  Flags
      property  

  public java.lang.String resolveUri(java.lang.Class, io.micronaut.core.naming.conventions.PropertyConvention);
    descriptor: (Ljava/lang/Class;Lio/micronaut/core/naming/conventions/PropertyConvention;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
        start local 1 // java.lang.Class type
        start local 2 // io.micronaut.core.naming.conventions.PropertyConvention id
         0: .line 1230
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 1 /* type */
            invokeinterface io.micronaut.web.router.RouteBuilder$UriNamingStrategy.resolveUri:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/{"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* id */
            invokevirtual io.micronaut.core.naming.conventions.PropertyConvention.lowerCaseName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // io.micronaut.core.naming.conventions.PropertyConvention id
        end local 1 // java.lang.Class type
        end local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/micronaut/web/router/RouteBuilder$UriNamingStrategy;
            0    1     1  type  Ljava/lang/Class;
            0    1     2    id  Lio/micronaut/core/naming/conventions/PropertyConvention;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
      Name  Flags
      type  
      id    

  public java.lang.String normalizeUri(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
        start local 1 // java.lang.String uri
         0: .line 1244
            aload 1 /* uri */
            ifnull 8
         1: .line 1245
            aload 1 /* uri */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 1246
            iload 2 /* len */
            ifle 4
            aload 1 /* uri */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 4
         3: .line 1247
            new java.lang.StringBuilder
            dup
            bipush 47
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* uri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* uri */
         4: .line 1249
      StackMap locals: int
      StackMap stack:
            iload 2 /* len */
            iconst_1
            if_icmple 6
            aload 1 /* uri */
            aload 1 /* uri */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 6
         5: .line 1250
            aload 1 /* uri */
            iconst_0
            aload 1 /* uri */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* uri */
         6: .line 1252
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifle 8
         7: .line 1253
            aload 1 /* uri */
            areturn
        end local 2 // int len
         8: .line 1256
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String uri
        end local 0 // io.micronaut.web.router.RouteBuilder$UriNamingStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/micronaut/web/router/RouteBuilder$UriNamingStrategy;
            0    9     1   uri  Ljava/lang/String;
            2    8     2   len  I
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.Nullable()
    MethodParameters:
      Name  Flags
      uri   

  private static java.lang.String lambda$0(io.micronaut.inject.BeanDefinition);
    descriptor: (Lio/micronaut/inject/BeanDefinition;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1189
            aload 0
            ldc Lio/micronaut/http/annotation/Controller;
            invokeinterface io.micronaut.inject.BeanDefinition.stringValue:(Ljava/lang/Class;)Ljava/util/Optional;
            ldc "/"
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "RouteBuilder.java"
NestHost: io.micronaut.web.router.RouteBuilder
InnerClasses:
  public abstract UriNamingStrategy = io.micronaut.web.router.RouteBuilder$UriNamingStrategy of io.micronaut.web.router.RouteBuilder
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles