public boolean hasChild(String child_key) {
	String[]	split	= child_key.split("[.]", 2);

	// This should never occur but just in case
	if (split.length == 0) {
	    return false;
	} else if (split.length == 1) {						// child key was a single name
	    return children.containsKey(child_key);
	} else if ((split.length > 1) && (split[0] == key)) {			// Child key was qualified with this nodes name
	    return hasChild(split[1]);
	} else if ((split.length > 1) && children.containsKey(split[0])) {	// Child key is a child of a child

	    // If the root key is not a group then the key is invalid
	    if (!children.get(split[0]).isGroup()) {
		return false;
	    }

	    try {
		ParameterGroup	child	= (ParameterGroup) children.get(split[0]);

		return child.hasChild(split[1]);
	    } catch (Exception e) {
		return false;
	    }
	}

	return false;
    }