test_class.file: recipe-java-runtime/src/test/java/ca/derekcormier/recipe/IngredientTest.java
test_class.identifier: IngredientTest
test_case.body: @Test
    public void testGetProperty_withType_stringDefaultsToNull() {
      Ingredient ingredient = new Ingredient("TestIngredient", "A") {};
      String value = ingredient.getProperty(String.class, "foo");
      assertEquals(null, value);
    }
test_case.class_method_signature: IngredientTest.testGetProperty_withType_stringDefaultsToNull()
test_case.full_signature: @Test public void testGetProperty_withType_stringDefaultsToNull()
test_case.identifier: testGetProperty_withType_stringDefaultsToNull
test_case.invocations: getProperty assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetProperty_withType_stringDefaultsToNull()
focal_class.declarator: properties = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, Object> properties = new HashMap<>();
focal_class.type: Map<String, Object>
focal_class.var_name: properties
focal_class.declarator: ingredientType
focal_class.modifier: @JsonIgnore private final
focal_class.original_string: @JsonIgnore private final String ingredientType;
focal_class.type: String
focal_class.var_name: ingredientType
focal_class.declarator: domain
focal_class.modifier: @JsonIgnore private final
focal_class.original_string: @JsonIgnore private final String domain;
focal_class.type: String
focal_class.var_name: domain
focal_class.file: recipe-java-runtime/src/main/java/ca/derekcormier/recipe/Ingredient.java
focal_class.identifier: Ingredient
focal_class.class_method_signature: Ingredient.Ingredient(String ingredientType, String domain)
focal_class.full_signature: public  Ingredient(String ingredientType, String domain)
focal_class.identifier: Ingredient
focal_class.modifiers: public
focal_class.parameters: (String ingredientType, String domain)
focal_class.signature:  Ingredient(String ingredientType, String domain)
focal_class.class_method_signature: Ingredient.Ingredient(String ingredientType)
focal_class.full_signature: public  Ingredient(String ingredientType)
focal_class.identifier: Ingredient
focal_class.modifiers: public
focal_class.parameters: (String ingredientType)
focal_class.signature:  Ingredient(String ingredientType)
focal_class.class_method_signature: Ingredient.Ingredient(Ingredient other)
focal_class.full_signature: protected  Ingredient(Ingredient other)
focal_class.identifier: Ingredient
focal_class.modifiers: protected
focal_class.parameters: (Ingredient other)
focal_class.signature:  Ingredient(Ingredient other)
focal_class.class_method_signature: Ingredient.getDomain()
focal_class.full_signature: public String getDomain()
focal_class.identifier: getDomain
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getDomain()
focal_class.class_method_signature: Ingredient.getIngredientType()
focal_class.full_signature: public String getIngredientType()
focal_class.identifier: getIngredientType
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getIngredientType()
focal_class.class_method_signature: Ingredient.setRequired(String name, Object value)
focal_class.full_signature: protected void setRequired(String name, Object value)
focal_class.identifier: setRequired
focal_class.modifiers: protected
focal_class.parameters: (String name, Object value)
focal_class.return: void
focal_class.signature: void setRequired(String name, Object value)
focal_class.class_method_signature: Ingredient.setOptional(String name, boolean repeatable, Object value)
focal_class.full_signature: protected void setOptional(String name, boolean repeatable, Object value)
focal_class.identifier: setOptional
focal_class.modifiers: protected
focal_class.parameters: (String name, boolean repeatable, Object value)
focal_class.return: void
focal_class.signature: void setOptional(String name, boolean repeatable, Object value)
focal_class.class_method_signature: Ingredient.setCompoundOptional(String name, boolean repeatable, Object... keyValuePairs)
focal_class.full_signature: protected void setCompoundOptional(String name, boolean repeatable, Object... keyValuePairs)
focal_class.identifier: setCompoundOptional
focal_class.modifiers: protected
focal_class.parameters: (String name, boolean repeatable, Object... keyValuePairs)
focal_class.return: void
focal_class.signature: void setCompoundOptional(String name, boolean repeatable, Object... keyValuePairs)
focal_class.class_method_signature: Ingredient.setProperty(String key, Object value)
focal_class.full_signature: @JsonAnySetter protected void setProperty(String key, Object value)
focal_class.identifier: setProperty
focal_class.modifiers: @JsonAnySetter protected
focal_class.parameters: (String key, Object value)
focal_class.return: void
focal_class.signature: void setProperty(String key, Object value)
focal_class.class_method_signature: Ingredient.getProperty(String key)
focal_class.full_signature: protected T getProperty(String key)
focal_class.identifier: getProperty
focal_class.modifiers: protected
focal_class.parameters: (String key)
focal_class.return: T
focal_class.signature: T getProperty(String key)
focal_class.class_method_signature: Ingredient.getProperty(Class<T> clazz, String key)
focal_class.full_signature: protected T getProperty(Class<T> clazz, String key)
focal_class.identifier: getProperty
focal_class.modifiers: protected
focal_class.parameters: (Class<T> clazz, String key)
focal_class.return: T
focal_class.signature: T getProperty(Class<T> clazz, String key)
focal_class.class_method_signature: Ingredient.hasProperty(String key)
focal_class.full_signature: protected boolean hasProperty(String key)
focal_class.identifier: hasProperty
focal_class.modifiers: protected
focal_class.parameters: (String key)
focal_class.return: boolean
focal_class.signature: boolean hasProperty(String key)
focal_class.class_method_signature: Ingredient.getProperties()
focal_class.full_signature: @JsonAnyGetter protected Map<String, Object> getProperties()
focal_class.identifier: getProperties
focal_class.modifiers: @JsonAnyGetter protected
focal_class.parameters: ()
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> getProperties()
focal_method.body: protected <T> T getProperty(String key) {
      return (T) properties.get(key);
    }
focal_method.class_method_signature: Ingredient.getProperty(String key)
focal_method.full_signature: protected T getProperty(String key)
focal_method.identifier: getProperty
focal_method.invocations: get
focal_method.modifiers: protected
focal_method.parameters: (String key)
focal_method.return: T
focal_method.signature: T getProperty(String key)