code: Element getElement(Node node) {
  		if (node == null) {
  			return null;
  		}
  		// element instance is cached as node user defined data and reused
  		Object value = node.getUserData(BACK_REF);
  		if (value != null) {
  			return (Element) value;
  		}
  		Element el = new ElementImpl(this, node);
  		node.setUserData(BACK_REF, el, null);
  		return el;
  	}
docs: Get the element associated to node. Returns the element bound to given node. If no element instance found, create a new
  {@link Element} instance, bound it to node then returns it. Returns null is given node is undefined or null.
  <p>
  Element instance is saved on node using {@link Node#setUserData(String, Object, org.w3c.dom.UserDataHandler)} and reused.
  See {@link #BACK_REF} for key used to store element instance.
  
  @param node native W3C DOM Node.
  @return element wrapping the given node or null.