test_class.file: restx-core/src/test/java/restx/StdRestxRequestMatcherTest.java
test_class.identifier: StdRestxRequestMatcherTest
test_case.body: @Test
      public void should_matcher_with_several_path_params_with_column_notation_match_not_match() throws Exception {
          StdRestxRequestMatcher matcher;
          Optional<? extends RestxRequestMatch> match;
  
          matcher = new StdRestxRequestMatcher("GET", "/user/:name/children/:child1/:child2");
          match = matcher.match("GET", "/user/johndoe/children/bobby/drake");
          assertThat(match.isPresent()).isTrue();
          assertThat(match.get().getPathParams()).isEqualTo(ImmutableMap.of("name", "johndoe", "child1", "bobby", "child2", "drake"));
  
          match = matcher.match("GET", "/user/johndoe");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/user");
          assertThat(match.isPresent()).isFalse();
  
          match = matcher.match("GET", "/user/johndoe/children/");
          assertThat(match.isPresent()).isFalse();
      }
test_case.class_method_signature: StdRestxRequestMatcherTest.should_matcher_with_several_path_params_with_column_notation_match_not_match()
test_case.full_signature: @Test public void should_matcher_with_several_path_params_with_column_notation_match_not_match()
test_case.identifier: should_matcher_with_several_path_params_with_column_notation_match_not_match
test_case.invocations: match isTrue assertThat isPresent isEqualTo assertThat getPathParams get of 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_several_path_params_with_column_notation_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)