protected void completeElement() {
        if (getName().equals(XML_NODE)) {
            // unify map child behaviour:
            if (mapChild == null) {
                mapChild = (NodeAdapter) userObject;
            }
            return;
        }
        if (getName().equals("font")) {
            userObject = mModeController.getController().getFontThroughMap(
                    new Font(fontName, fontStyle, fontSize));
            return;
        }
		/* icons */
        if (getName().equals("icon")) {
            userObject = MindIcon.factory(iconName);
            return;
        }
		/* attributes */
        if (getName().equals(XML_NODE_ATTRIBUTE)) {
            userObject = new Attribute(attributeName, attributeValue);
            return;
        }
        if (getName().equals(XML_NODE_REGISTERED_ATTRIBUTE_NAME)) {
            if (null != getAttribute("VISIBLE")) {
                getMap().getRegistry().getAttributes()
                        .getElement(attributeName).setVisibility(true);
            }
            if (null != getAttribute("RESTRICTED")) {
                getMap().getRegistry().getAttributes()
                        .getElement(attributeName).setRestriction(true);
            }
            return;
        }
    }