test_class.file: services/src/test/java/com/greensopinion/finance/services/web/dispatch/WebPathTest.java
test_class.identifier: WebPathTest
test_case.body: @Test
  	public void decodeVariables() {
  		WebPath webPath = new WebPath("GET", "/one/{two}/{three}");
  		MatchResult match = webPath.match("GET", "/one/a%20b/+c");
  		assertEquals("a b", match.getVariables().get("two"));
  		assertEquals(" c", match.getVariables().get("three"));
  	}
test_case.class_method_signature: WebPathTest.decodeVariables()
test_case.full_signature: @Test public void decodeVariables()
test_case.identifier: decodeVariables
test_case.invocations: match assertEquals get getVariables assertEquals get getVariables
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void decodeVariables()
focal_class.declarator: httpMethod
focal_class.modifier: private final
focal_class.original_string: private final String httpMethod;
focal_class.type: String
focal_class.var_name: httpMethod
focal_class.declarator: pattern
focal_class.modifier: private
focal_class.original_string: private Pattern pattern;
focal_class.type: Pattern
focal_class.var_name: pattern
focal_class.declarator: variableNames
focal_class.modifier: private
focal_class.original_string: private List<String> variableNames;
focal_class.type: List<String>
focal_class.var_name: variableNames
focal_class.file: services/src/main/java/com/greensopinion/finance/services/web/dispatch/WebPath.java
focal_class.identifier: WebPath
focal_class.class_method_signature: WebPath.WebPath(String httpMethod, String path)
focal_class.full_signature: public  WebPath(String httpMethod, String path)
focal_class.identifier: WebPath
focal_class.modifiers: public
focal_class.parameters: (String httpMethod, String path)
focal_class.signature:  WebPath(String httpMethod, String path)
focal_class.class_method_signature: WebPath.match(String method, String path)
focal_class.full_signature: public MatchResult match(String method, String path)
focal_class.identifier: match
focal_class.modifiers: public
focal_class.parameters: (String method, String path)
focal_class.return: MatchResult
focal_class.signature: MatchResult match(String method, String path)
focal_class.class_method_signature: WebPath.decode(String variable)
focal_class.full_signature: private String decode(String variable)
focal_class.identifier: decode
focal_class.modifiers: private
focal_class.parameters: (String variable)
focal_class.return: String
focal_class.signature: String decode(String variable)
focal_class.class_method_signature: WebPath.compile(String path)
focal_class.full_signature: private void compile(String path)
focal_class.identifier: compile
focal_class.modifiers: private
focal_class.parameters: (String path)
focal_class.return: void
focal_class.signature: void compile(String path)
focal_class.class_method_signature: WebPath.getVariableNames()
focal_class.full_signature:  List<String> getVariableNames()
focal_class.identifier: getVariableNames
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getVariableNames()
focal_class.class_method_signature: WebPath.getPattern()
focal_class.full_signature:  Pattern getPattern()
focal_class.identifier: getPattern
focal_class.parameters: ()
focal_class.return: Pattern
focal_class.signature: Pattern getPattern()
focal_class.class_method_signature: WebPath.getHttpMethod()
focal_class.full_signature:  String getHttpMethod()
focal_class.identifier: getHttpMethod
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getHttpMethod()
focal_class.class_method_signature: WebPath.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_method.body: public MatchResult match(String method, String path) {
  		if (!httpMethod.equals(method)) {
  			return MatchResult.NO_MATCH;
  		}
  		Matcher matcher = pattern.matcher(path);
  		if (matcher.matches()) {
  			ImmutableMap.Builder<String, String> variablesBuilder = ImmutableMap.builder();
  			for (int x = 0; x < variableNames.size(); ++x) {
  				String variable = matcher.group(x + 1);
  				variablesBuilder.put(variableNames.get(x), decode(variable));
  			}
  			return new MatchResult(true, variablesBuilder.build());
  		}
  		return MatchResult.NO_MATCH;
  	}
focal_method.class_method_signature: WebPath.match(String method, String path)
focal_method.full_signature: public MatchResult match(String method, String path)
focal_method.identifier: match
focal_method.invocations: equals matcher matches builder size group put get decode build
focal_method.modifiers: public
focal_method.parameters: (String method, String path)
focal_method.return: MatchResult
focal_method.signature: MatchResult match(String method, String path)