code: public static DocumentNode toDocumentNode(List<Object> documentNodeParams)
      {
          DocumentNode node = new DocumentNode((String) documentNodeParams.get(NODE_TITLE_INDEX));
          node.setIsExecutable((Boolean) documentNodeParams.get(NODE_EXECUTABLE_INDEX));
          node.setCanBeImplemented((Boolean) documentNodeParams.get(NODE_CAN_BE_IMPLEMENTED_INDEX));
          if (documentNodeParams.size() == 5) {
              node.setURL((String) documentNodeParams.get(NODE_URL_INDEX));
          }
  
          Hashtable children = (Hashtable) documentNodeParams.get(NODE_CHILDREN_INDEX);
          @SuppressWarnings("unchecked")
          Collection<Vector<Object>> values = children.values();
          for (Vector<Object> nodeParams : values) {
  
              if(nodeParams.size() > 5 ) {
                  node.addChildren(ReferenceNode.toReferenceNode(nodeParams));
              } else {
                  node.addChildren(toDocumentNode(nodeParams));
              }
          }
  
          return node;
      }
docs: Rebuilds a DocumentNode based on the given vector.
  </p>
  
  @param documentNodeParams a {@link Vector} object.
  @return a DocumentNode based on the given vector.