1818 */
1919package org .jooby .internal ;
2020
21- import java .util .Collections ;
2221import java .util .List ;
2322import java .util .Map ;
2423
3332
3433public class RouteImpl implements Route , Route .Filter {
3534
36- private static Map <Object , String > NO_VARS = Collections .emptyMap ();
35+ private static Map <Object , String > NO_VARS = ImmutableMap .of ();
36+
37+ private static ImmutableMap <String , String > NO_ATTRS = ImmutableMap .of ();
3738
3839 private String method ;
3940
@@ -51,7 +52,7 @@ public class RouteImpl implements Route, Route.Filter {
5152
5253 private Filter filter ;
5354
54- private ImmutableMap <String , String > attributes ;
55+ private Map <String , String > attributes ;
5556
5657 public static RouteImpl notFound (final String method , final String path ,
5758 final List <MediaType > produces ) {
@@ -65,7 +66,7 @@ public static RouteImpl notFound(final String method, final String path,
6566 public static RouteImpl fromStatus (final Filter filter , final String method ,
6667 final String path , final String name , final List <MediaType > produces ) {
6768 return new RouteImpl (filter , method , path , path , name , NO_VARS , MediaType .ALL , produces ,
68- Collections . emptyMap () ) {
69+ NO_ATTRS ) {
6970 @ Override
7071 public boolean apply (final String filter ) {
7172 return true ;
@@ -77,6 +78,14 @@ public RouteImpl(final Filter filter, final String method, final String path,
7778 final String pattern , final String name , final Map <Object , String > vars ,
7879 final List <MediaType > consumes , final List <MediaType > produces ,
7980 final Map <String , String > attributes ) {
81+ this (filter , method , path , pattern , name , vars , consumes , produces ,
82+ ImmutableMap .<String , String > copyOf (attributes ));
83+ }
84+
85+ public RouteImpl (final Filter filter , final String method , final String path ,
86+ final String pattern , final String name , final Map <Object , String > vars ,
87+ final List <MediaType > consumes , final List <MediaType > produces ,
88+ final ImmutableMap <String , String > attributes ) {
8089 this .filter = filter ;
8190 this .method = method ;
8291 this .path = path ;
@@ -85,7 +94,7 @@ public RouteImpl(final Filter filter, final String method, final String path,
8594 this .vars = vars ;
8695 this .consumes = consumes ;
8796 this .produces = produces ;
88- this .attributes = ImmutableMap . copyOf ( attributes ) ;
97+ this .attributes = attributes ;
8998 }
9099
91100 @ Override
0 commit comments