docs: @SuppressWarnings({ "rawtypes", "unchecked" })
  	public Map getMap(NodeConfig nodeConfig) {
  		Map map = new HashMap();
  		List<AttributeConfig> attributes = nodeConfig.getAttribute();
  		map.putAll(getAttribute(attributes));
  
  		List<NodeConfig> childrenNodes = nodeConfig.getChildrenNodes();
  		if (childrenNodes != null && childrenNodes.size() > 0) {
  			for (NodeConfig childNode : childrenNodes) {
  				String name = childNode.getName();
  				Object value = childNode.getValue();
  
  				if (childNode.hasChildren()) {
  					Map childNodeMap = getMap(childNode);
  					map.put(name, addToList(map.get(name), childNodeMap));
  				} else {
  					if (childNode.hasAttributes()) {
  						Map attributeMap = new HashMap();
  						attributeMap = getAttribute(childNode.getAttribute());
  						if (attributeMap.size() > 0) {
  							if (value != null && value instanceof String) {
  								attributeMap.put("nodeValue", value);
  							}
  							value = attributeMap;
  						}
  					}
  				}
  
  				if (value != null) {
  					map.put(name, addToList(map.get(name), value));
  				}
  			}
  		}
  		if (nodeConfig.getName() != null && nodeConfig.getValue() != null) {
  			map.put(nodeConfig.getName(), nodeConfig.getValue());
  		}
  		return map;
  	}