test_class.file: restx-core/src/test/java/restx/StdRestxRequestMatcherTest.java
test_class.identifier: StdRestxRequestMatcherTest
test_case.body: @Test
      public void should_matcher_with_one_path_param_match_not_match() throws Exception {
          StdRestxRequestMatcher matcher = new StdRestxRequestMatcher("GET", "/user/{name}");
  
          Optional<? extends RestxRequestMatch> match = matcher.match("GET", "/user/johndoe");
          assertThat(match.isPresent()).isTrue();
          assertThat(match.get().getPathParams()).isEqualTo(ImmutableMap.of("name", "johndoe"));
          assertThat(match.get().getPathParam("name")).isEqualTo("johndoe");
  
          match = matcher.match("POST", "/user/johndoe");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/user/johndoe/details");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/users/johndoe");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/user");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/user/");
          assertThat(match.isPresent()).isFalse();
      }
test_case.class_method_signature: StdRestxRequestMatcherTest.should_matcher_with_one_path_param_match_not_match()
test_case.full_signature: @Test public void should_matcher_with_one_path_param_match_not_match()
test_case.identifier: should_matcher_with_one_path_param_match_not_match
test_case.invocations: match isTrue assertThat isPresent isEqualTo assertThat getPathParams get of isEqualTo assertThat getPathParam get match isFalse assertThat isPresent match isFalse assertThat isPresent match isFalse assertThat isPresent match isFalse assertThat isPresent match isFalse assertThat isPresent
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void should_matcher_with_one_path_param_match_not_match()
focal_class.declarator: endpoint
focal_class.modifier: private final
focal_class.original_string: private final Endpoint endpoint;
focal_class.type: Endpoint
focal_class.var_name: endpoint
focal_class.declarator: stdPathPattern
focal_class.modifier: private final
focal_class.original_string: private final String stdPathPattern;
focal_class.type: String
focal_class.var_name: stdPathPattern
focal_class.declarator: pattern
focal_class.modifier: private final
focal_class.original_string: private final Pattern pattern;
focal_class.type: Pattern
focal_class.var_name: pattern
focal_class.declarator: groupNames
focal_class.modifier: private final
focal_class.original_string: private final ImmutableList<String> groupNames;
focal_class.type: ImmutableList<String>
focal_class.var_name: groupNames
focal_class.declarator: regularCharPathParserCharProcessor = new PathParserCharProcessor() {
          @Override
          public void handle(int curChar, PathPatternParser pathPatternParser) {
              if (curChar == '{') {
                  pathPatternParser.processor = new CurlyBracesPathParamPathParserCharProcessor();
              } else if (curChar == ':') {
                  pathPatternParser.processor = new SimpleColumnBasedPathParamParserCharProcessor();
              } else {
                  pathPatternParser.patternBuilder.appendCodePoint(curChar);
                  pathPatternParser.stdPathPatternBuilder.appendCodePoint(curChar);
              }
          }
  
          @Override
          public void end(PathPatternParser pathPatternParser) {
          }
      }
focal_class.modifier: private static final
focal_class.original_string: private static final PathParserCharProcessor regularCharPathParserCharProcessor = new PathParserCharProcessor() {
          @Override
          public void handle(int curChar, PathPatternParser pathPatternParser) {
              if (curChar == '{') {
                  pathPatternParser.processor = new CurlyBracesPathParamPathParserCharProcessor();
              } else if (curChar == ':') {
                  pathPatternParser.processor = new SimpleColumnBasedPathParamParserCharProcessor();
              } else {
                  pathPatternParser.patternBuilder.appendCodePoint(curChar);
                  pathPatternParser.stdPathPatternBuilder.appendCodePoint(curChar);
              }
          }
  
          @Override
          public void end(PathPatternParser pathPatternParser) {
          }
      };
focal_class.type: PathParserCharProcessor
focal_class.var_name: regularCharPathParserCharProcessor
focal_class.file: restx-core/src/main/java/restx/StdRestxRequestMatcher.java
focal_class.identifier: StdRestxRequestMatcher
focal_class.interfaces: implements RestxRequestMatcher
focal_class.class_method_signature: StdRestxRequestMatcher.StdRestxRequestMatcher(Endpoint endpoint)
focal_class.full_signature: public  StdRestxRequestMatcher(Endpoint endpoint)
focal_class.identifier: StdRestxRequestMatcher
focal_class.modifiers: public
focal_class.parameters: (Endpoint endpoint)
focal_class.signature:  StdRestxRequestMatcher(Endpoint endpoint)
focal_class.class_method_signature: StdRestxRequestMatcher.StdRestxRequestMatcher(String method, String pathPattern)
focal_class.full_signature: public  StdRestxRequestMatcher(String method, String pathPattern)
focal_class.identifier: StdRestxRequestMatcher
focal_class.modifiers: public
focal_class.parameters: (String method, String pathPattern)
focal_class.signature:  StdRestxRequestMatcher(String method, String pathPattern)
focal_class.class_method_signature: StdRestxRequestMatcher.match(String method, String path)
focal_class.full_signature: @Override public Optional<? extends RestxRequestMatch> match(String method, String path)
focal_class.identifier: match
focal_class.modifiers: @Override public
focal_class.parameters: (String method, String path)
focal_class.return: Optional<? extends RestxRequestMatch>
focal_class.signature: Optional<? extends RestxRequestMatch> match(String method, String path)
focal_class.class_method_signature: StdRestxRequestMatcher.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: StdRestxRequestMatcher.getMethod()
focal_class.full_signature: public String getMethod()
focal_class.identifier: getMethod
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getMethod()
focal_class.class_method_signature: StdRestxRequestMatcher.getPathPattern()
focal_class.full_signature: public String getPathPattern()
focal_class.identifier: getPathPattern
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getPathPattern()
focal_class.class_method_signature: StdRestxRequestMatcher.getStdPathPattern()
focal_class.full_signature: public String getStdPathPattern()
focal_class.identifier: getStdPathPattern
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getStdPathPattern()
focal_class.class_method_signature: StdRestxRequestMatcher.getPathParamNames()
focal_class.full_signature: public ImmutableList<String> getPathParamNames()
focal_class.identifier: getPathParamNames
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ImmutableList<String>
focal_class.signature: ImmutableList<String> getPathParamNames()
focal_class.class_method_signature: StdRestxRequestMatcher.isValidPathParamNameChar(int curChar)
focal_class.full_signature: private static boolean isValidPathParamNameChar(int curChar)
focal_class.identifier: isValidPathParamNameChar
focal_class.modifiers: private static
focal_class.parameters: (int curChar)
focal_class.return: boolean
focal_class.signature: boolean isValidPathParamNameChar(int curChar)
focal_method.body: @Override
      public Optional<? extends RestxRequestMatch> match(String method, String path) {
          if (!this.endpoint.getMethod().equals(method)) {
              return Optional.absent();
          }
          Matcher m = pattern.matcher(path);
          if (!m.matches()) {
              return Optional.absent();
          }
  
          ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
          for (int i = 0; i < m.groupCount() && i < groupNames.size(); i++) {
               params.put(groupNames.get(i), m.group(i + 1));
          }
  
          return Optional.of(new StdRestxRequestMatch(this.endpoint.getPathPattern(), path, params.build()));
      }
focal_method.class_method_signature: StdRestxRequestMatcher.match(String method, String path)
focal_method.full_signature: @Override public Optional<? extends RestxRequestMatch> match(String method, String path)
focal_method.identifier: match
focal_method.invocations: equals getMethod absent matcher matches absent builder groupCount size put get group of getPathPattern build
focal_method.modifiers: @Override public
focal_method.parameters: (String method, String path)
focal_method.return: Optional<? extends RestxRequestMatch>
focal_method.signature: Optional<? extends RestxRequestMatch> match(String method, String path)