class_docstr: Concatenates record arrays and/or adds new columns
class_docstr_tok: ["Concatenates","record","arrays","and\/or","adds","new","columns"]
code: def restoreState(self, state):
      Node.restoreState(self, state)
      inputs = self.inputs()
  
      ## Node.restoreState should have created all of the terminals we need
      ## However: to maintain support for some older flowchart files, we need
      ## to manually add any terminals that were not taken care of.
      for name in [n for n in state["order"] if n not in inputs]:
          Node.addInput(
              self, name, renamable=True, removable=True, multiable=True
          )
      inputs = self.inputs()
  
      order = [name for name in state["order"] if name in inputs]
      for name in inputs:
          if name not in order:
              order.append(name)
  
      self.tree.clear()
      for name in order:
          term = self[name]
          item = QtWidgets.QTreeWidgetItem([name])
          item.term = term
          term.joinItem = item
          # self.items.append((term, item))
          self.tree.addTopLevelItem(item)
  
imports: import numpy
  from ...graphicsItems.LinearRegionItem import LinearRegionItem
  from ...Qt import QtCore, QtWidgets
  from ...widgets.TreeWidget import TreeWidget
  from ..Node import Node
  from .None import functions
  from .common import CtrlNode
label_desc: Use image node_id 8 for calling the ColumnJoinNode obj's underlying member method code with example usage: obj.restoreState(state) without return types