class Configuration {

  public String getAttributeValue(String configType, String propertyName, String attributeName) {
    String value = null;
    if (attributes.containsKey(configType) &&
        attributes.get(configType).containsKey(attributeName) &&
        attributes.get(configType).get(attributeName).containsKey(propertyName)) {

      value = attributes.get(configType).get(attributeName).get(propertyName);
    } else if (parentConfiguration != null) {
      value = parentConfiguration.getAttributeValue(configType, propertyName, attributeName);
    }

    return value;
  }

  public  Configuration(Map<String, Map<String, String>> properties,
                       Map<String, Map<String, Map<String, String>>> attributes,
                       Configuration parentConfiguration);
  public  Configuration(Map<String, Map<String, String>> properties,
                       Map<String, Map<String, Map<String, String>>> attributes);

}