test_class.declarator: loader
test_class.modifier: private
test_class.original_string: private CookbookLoader loader;
test_class.type: CookbookLoader
test_class.var_name: loader
test_class.file: recipe-generator/src/test/java/ca/derekcormier/recipe/cookbook/CookbookLoaderTest.java
test_class.identifier: CookbookLoaderTest
test_case.body: @Test
    public void testLoad_ingredientWithPrimitiveArrayType_doesNotThrow() {
      String yaml =
          String.join(
              "\n",
              "domain: 'test'",
              "ingredients:",
              "  - name: 'ingredient'",
              "    optionals:",
              "      - name: 'arg'",
              "        type: 'string[]'");
  
      loader.load(toStream(yaml));
    }
test_case.class_method_signature: CookbookLoaderTest.testLoad_ingredientWithPrimitiveArrayType_doesNotThrow()
test_case.full_signature: @Test public void testLoad_ingredientWithPrimitiveArrayType_doesNotThrow()
test_case.identifier: testLoad_ingredientWithPrimitiveArrayType_doesNotThrow
test_case.invocations: join load toStream
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testLoad_ingredientWithPrimitiveArrayType_doesNotThrow()
focal_class.file: recipe-generator/src/main/java/ca/derekcormier/recipe/cookbook/CookbookLoader.java
focal_class.identifier: CookbookLoader
focal_class.class_method_signature: CookbookLoader.load(InputStream ingredients)
focal_class.full_signature: public Cookbook load(InputStream ingredients)
focal_class.identifier: load
focal_class.modifiers: public
focal_class.parameters: (InputStream ingredients)
focal_class.return: Cookbook
focal_class.signature: Cookbook load(InputStream ingredients)
focal_class.class_method_signature: CookbookLoader.validate(Cookbook cookbook)
focal_class.full_signature: private void validate(Cookbook cookbook)
focal_class.identifier: validate
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validate(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateDomain(Cookbook cookbook)
focal_class.full_signature: private void validateDomain(Cookbook cookbook)
focal_class.identifier: validateDomain
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateDomain(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateIngredients(Cookbook cookbook)
focal_class.full_signature: private void validateIngredients(Cookbook cookbook)
focal_class.identifier: validateIngredients
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateIngredients(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateEnums(Cookbook cookbook)
focal_class.full_signature: private void validateEnums(Cookbook cookbook)
focal_class.identifier: validateEnums
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateEnums(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateInitializersContainRequiredFields(Cookbook cookbook)
focal_class.full_signature: private void validateInitializersContainRequiredFields(Cookbook cookbook)
focal_class.identifier: validateInitializersContainRequiredFields
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateInitializersContainRequiredFields(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoDuplicateIngredientNames(Cookbook cookbook)
focal_class.full_signature: private void validateNoDuplicateIngredientNames(Cookbook cookbook)
focal_class.identifier: validateNoDuplicateIngredientNames
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoDuplicateIngredientNames(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateParamTypes(Cookbook cookbook)
focal_class.full_signature: private void validateParamTypes(Cookbook cookbook)
focal_class.identifier: validateParamTypes
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateParamTypes(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoDuplicateFieldNames(Cookbook cookbook)
focal_class.full_signature: private void validateNoDuplicateFieldNames(Cookbook cookbook)
focal_class.identifier: validateNoDuplicateFieldNames
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoDuplicateFieldNames(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateInitializerSignaturesUnique(Cookbook cookbook)
focal_class.full_signature: private void validateInitializerSignaturesUnique(Cookbook cookbook)
focal_class.identifier: validateInitializerSignaturesUnique
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateInitializerSignaturesUnique(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateRequiredHaveDefaultOrAppearInAllInitializers(Cookbook cookbook)
focal_class.full_signature: private void validateRequiredHaveDefaultOrAppearInAllInitializers(Cookbook cookbook)
focal_class.identifier: validateRequiredHaveDefaultOrAppearInAllInitializers
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateRequiredHaveDefaultOrAppearInAllInitializers(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateVaragParamsAppearLastInParamLists(Cookbook cookbook)
focal_class.full_signature: private void validateVaragParamsAppearLastInParamLists(Cookbook cookbook)
focal_class.identifier: validateVaragParamsAppearLastInParamLists
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateVaragParamsAppearLastInParamLists(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateConstantNames(Cookbook cookbook)
focal_class.full_signature: private void validateConstantNames(Cookbook cookbook)
focal_class.identifier: validateConstantNames
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateConstantNames(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoDuplicateConstantNames(Cookbook cookbook)
focal_class.full_signature: private void validateNoDuplicateConstantNames(Cookbook cookbook)
focal_class.identifier: validateNoDuplicateConstantNames
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoDuplicateConstantNames(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateDefaultKey(Cookbook cookbook)
focal_class.full_signature: private void validateDefaultKey(Cookbook cookbook)
focal_class.identifier: validateDefaultKey
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateDefaultKey(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoDuplicateEnumNames(Cookbook cookbook)
focal_class.full_signature: private void validateNoDuplicateEnumNames(Cookbook cookbook)
focal_class.identifier: validateNoDuplicateEnumNames
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoDuplicateEnumNames(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoEmptyEnumValues(Cookbook cookbook)
focal_class.full_signature: private void validateNoEmptyEnumValues(Cookbook cookbook)
focal_class.identifier: validateNoEmptyEnumValues
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoEmptyEnumValues(Cookbook cookbook)
focal_class.class_method_signature: CookbookLoader.validateNoDuplicateEnumValues(Cookbook cookbook)
focal_class.full_signature: private void validateNoDuplicateEnumValues(Cookbook cookbook)
focal_class.identifier: validateNoDuplicateEnumValues
focal_class.modifiers: private
focal_class.parameters: (Cookbook cookbook)
focal_class.return: void
focal_class.signature: void validateNoDuplicateEnumValues(Cookbook cookbook)
focal_method.body: public Cookbook load(InputStream ingredients) {
      ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
      Cookbook cookbook = null;
      try {
        cookbook = mapper.readValue(ingredients, Cookbook.class);
      } catch (IOException e) {
        throw new RuntimeException("could not load recipe cookbook from input stream", e);
      }
      validate(cookbook);
      return cookbook;
    }
focal_method.class_method_signature: CookbookLoader.load(InputStream ingredients)
focal_method.full_signature: public Cookbook load(InputStream ingredients)
focal_method.identifier: load
focal_method.invocations: readValue validate
focal_method.modifiers: public
focal_method.parameters: (InputStream ingredients)
focal_method.return: Cookbook
focal_method.signature: Cookbook load(InputStream ingredients)