code: @SuppressWarnings("unchecked")
  	public Object getValue(String propertyPath) throws PropertyException {
  		// add the PreFixPropertyPath if this Property is a copy deeper level
  		String fullPropertyPath = addPath(mPropertyPathPrefix, propertyPath);
  
  		// check propertyPath
  		ObjectChecks.checkForNullReference(fullPropertyPath,
  				"propertyPath is null");
  
  		// split propertyPath
  		String[] propertyKeyArray = fullPropertyPath.split("\\.");
  
  		// load the application properties
  		Map<String, Object> applicationConfigs = load();
  
  		// return the full root map
  		if (fullPropertyPath.equals("")) {
  			return applicationConfigs;
  		}
  
  		// iterate the root Map for every token
  		for (int i = 0; i < propertyKeyArray.length; i++) {
  			Object tmp = applicationConfigs.get(propertyKeyArray[i]);
  			if (tmp == null) {
  				if (propertyKeyArray.length > 1) {
  					throw new PropertyException("property path["
  							+ fullPropertyPath + "] have not a property key["
  							+ propertyKeyArray[i] + "] !");
  				} else {
  					throw new PropertyException(propertyKeyArray[i]
  							+ "] is not a property key!");
  				}
  			}
  			if (tmp instanceof Map) {
  				applicationConfigs = (Map<String, Object>) tmp;
  			} else {
  				return tmp;
  			}
  		}
  		return applicationConfigs;
  	}
docs: Get the value from the property path (Example: foo.bar.key). If the
  property path is a empty String, the full root map is returned.
  
  @param propertyPath
  Example: foo.bar.key
  @return the value from the propertyPath.
  @throws PropertyException
  if the propertyKey-Path is not a property key or is a not
  part of a property path.