test_class.declarator: oven
test_class.modifier: private
test_class.original_string: private BackendOven oven;
test_class.type: BackendOven
test_class.var_name: oven
test_class.file: recipe-java-runtime/src/test/java/ca/derekcormier/recipe/BackendOvenTest.java
test_class.identifier: BackendOvenTest
test_case.body: @Test(expected = RuntimeException.class)
    public void testBake_throwsOnMissingIngredientHook() {
      oven.bake("{\"recipe\":{\"Recipe\":{\"ingredients\":[{\"TestIngredient\":{}}]}}}");
    }
test_case.class_method_signature: BackendOvenTest.testBake_throwsOnMissingIngredientHook()
test_case.full_signature: @Test(expected = RuntimeException.class) public void testBake_throwsOnMissingIngredientHook()
test_case.identifier: testBake_throwsOnMissingIngredientHook
test_case.invocations: bake
test_case.modifiers: @Test(expected = RuntimeException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBake_throwsOnMissingIngredientHook()
focal_class.declarator: hooks = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, BaseIngredientHook> hooks = new HashMap<>();
focal_class.type: Map<String, BaseIngredientHook>
focal_class.var_name: hooks
focal_class.declarator: objectMapper = new ObjectMapper()
focal_class.modifier: private final
focal_class.original_string: private final ObjectMapper objectMapper = new ObjectMapper();
focal_class.type: ObjectMapper
focal_class.var_name: objectMapper
focal_class.declarator: subtypeResolver = new StdSubtypeResolver()
focal_class.modifier: private final
focal_class.original_string: private final SubtypeResolver subtypeResolver = new StdSubtypeResolver();
focal_class.type: SubtypeResolver
focal_class.var_name: subtypeResolver
focal_class.file: recipe-java-runtime/src/main/java/ca/derekcormier/recipe/BackendOven.java
focal_class.identifier: BackendOven
focal_class.class_method_signature: BackendOven.BackendOven()
focal_class.full_signature: public  BackendOven()
focal_class.identifier: BackendOven
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  BackendOven()
focal_class.class_method_signature: BackendOven.bake(String json)
focal_class.full_signature: public String bake(String json)
focal_class.identifier: bake
focal_class.modifiers: public
focal_class.parameters: (String json)
focal_class.return: String
focal_class.signature: String bake(String json)
focal_class.class_method_signature: BackendOven.registerHook(BaseIngredientHook hook)
focal_class.full_signature: public void registerHook(BaseIngredientHook hook)
focal_class.identifier: registerHook
focal_class.modifiers: public
focal_class.parameters: (BaseIngredientHook hook)
focal_class.return: void
focal_class.signature: void registerHook(BaseIngredientHook hook)
focal_class.class_method_signature: BackendOven.bakeIngredient(Ingredient ingredient, Cake cake)
focal_class.full_signature: private void bakeIngredient(Ingredient ingredient, Cake cake)
focal_class.identifier: bakeIngredient
focal_class.modifiers: private
focal_class.parameters: (Ingredient ingredient, Cake cake)
focal_class.return: void
focal_class.signature: void bakeIngredient(Ingredient ingredient, Cake cake)
focal_class.superclass: extends AbstractOven
focal_method.body: public String bake(String json) {
      try {
        Payload payload = objectMapper.readValue(json, Payload.class);
        Cake cake = createCake(payload.getCake());
  
        bakeIngredient(payload.getRecipe(), cake);
  
        Cake cakeToSerialize = new Cake(cake);
        return objectMapper.writeValueAsString(cakeToSerialize);
      } catch (Exception e) {
        throw new RuntimeException("payload serialization error", e);
      }
    }
focal_method.class_method_signature: BackendOven.bake(String json)
focal_method.full_signature: public String bake(String json)
focal_method.identifier: bake
focal_method.invocations: readValue createCake getCake bakeIngredient getRecipe writeValueAsString
focal_method.modifiers: public
focal_method.parameters: (String json)
focal_method.return: String
focal_method.signature: String bake(String json)