code: private Object itemValue(Object obj, Object item) throws Exception {
  		// String value
  		if (item instanceof String) {
  			return item;
  		}
  
  		Element node = (Element) item;
  		String tag = node.getTagName();
  		// TODO: in case of jdk7 usage use swtich instead
  		if ("Call".equals(tag)) {
  			return call(obj, node);
  		}
  		if ("Get".equals(tag)) {
  			return get(obj, node);
  		}
  		if ("New".equals(tag)) {
  			return newObj(obj, node);
  		}
  		if ("Ref".equals(tag)) {
  			return refObj(obj, node);
  		}
  		if ("Array".equals(tag)) {
  			return newArray(obj, node);
  		}
  		if ("Map".equals(tag)) {
  			return newMap(obj, node);
  		}
  		if ("Property".equals(tag)) {
  			return propertyObj(obj, node);
  		}
  
  		if ("SystemProperty".equals(tag)) {
  			String name = getAttribute(node, "name");
  			String defaultValue = getAttribute(node, "default");
  			return System.getProperty(name, defaultValue);
  		}
  
  		LOG.warn("Unknown value tag: {}", node);
  		return null;
  	}
docs: /*
  Get the value of a single element. @param obj @param item @return
  
  @exception Exception