test_class.declarator: javaTypeFilter
test_class.modifier: @Mock private
test_class.original_string: @Mock private JavaTypeFilter javaTypeFilter;
test_class.type: JavaTypeFilter
test_class.var_name: javaTypeFilter
test_class.declarator: javaIdentifierFilter
test_class.modifier: @Mock private
test_class.original_string: @Mock private JavaIdentifierFilter javaIdentifierFilter;
test_class.type: JavaIdentifierFilter
test_class.var_name: javaIdentifierFilter
test_class.file: recipe-generator/src/test/java/ca/derekcormier/recipe/generator/filter/JavaParamFilterTest.java
test_class.identifier: JavaParamFilterTest
test_case.body: @Test
    public void testApply_combinesTypeAndNameFromFilters() {
      Cookbook cookbook = new Cookbook("test", new ArrayList<>(), new ArrayList<>());
      Filter filter = new JavaParamFilter(cookbook, javaTypeFilter, javaIdentifierFilter);
  
      Map param = new HashMap();
      param.put("name", "foo");
      param.put("type", "int[]");
  
      when(javaTypeFilter.apply(param.get("type"), false)).thenReturn("type");
      when(javaIdentifierFilter.apply(param.get("name"))).thenReturn("identifier");
  
      assertEquals("type identifier", filter.apply(param));
    }
test_case.class_method_signature: JavaParamFilterTest.testApply_combinesTypeAndNameFromFilters()
test_case.full_signature: @Test public void testApply_combinesTypeAndNameFromFilters()
test_case.identifier: testApply_combinesTypeAndNameFromFilters
test_case.invocations: put put thenReturn when apply get thenReturn when apply get assertEquals apply
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testApply_combinesTypeAndNameFromFilters()
focal_class.declarator: typeFilter
focal_class.modifier: private final
focal_class.original_string: private final Filter typeFilter;
focal_class.type: Filter
focal_class.var_name: typeFilter
focal_class.declarator: identifierFilter
focal_class.modifier: private final
focal_class.original_string: private final Filter identifierFilter;
focal_class.type: Filter
focal_class.var_name: identifierFilter
focal_class.file: recipe-generator/src/main/java/ca/derekcormier/recipe/generator/filter/JavaParamFilter.java
focal_class.identifier: JavaParamFilter
focal_class.class_method_signature: JavaParamFilter.JavaParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.full_signature: public  JavaParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.identifier: JavaParamFilter
focal_class.modifiers: public
focal_class.parameters: (Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.signature:  JavaParamFilter(Cookbook cookbook, Filter typeFilter, Filter identifierFilter)
focal_class.class_method_signature: JavaParamFilter.apply(Object value, Object... params)
focal_class.full_signature: @Override public Object apply(Object value, Object... params)
focal_class.identifier: apply
focal_class.modifiers: @Override public
focal_class.parameters: (Object value, Object... params)
focal_class.return: Object
focal_class.signature: Object apply(Object value, Object... params)
focal_class.superclass: extends RecipeFilter
focal_method.body: @Override
    public Object apply(Object value, Object... params) {
      Map<String, Object> param = (Map<String, Object>) value;
      String name = (String) param.get("name");
  
      boolean varargAsArray = params.length > 0 && super.asBoolean(params[0]);
      return typeFilter.apply(param.get("type"), varargAsArray) + " " + identifierFilter.apply(name);
    }
focal_method.class_method_signature: JavaParamFilter.apply(Object value, Object... params)
focal_method.full_signature: @Override public Object apply(Object value, Object... params)
focal_method.identifier: apply
focal_method.invocations: get asBoolean apply get apply
focal_method.modifiers: @Override public
focal_method.parameters: (Object value, Object... params)
focal_method.return: Object
focal_method.signature: Object apply(Object value, Object... params)