static @Nullable TextExtractor getTextExtractor(@Nullable Component component) {
    return component instanceof JTextComponent ? new TextComponentExtractor((JTextComponent)component) :
           component instanceof JList ? new ListExtractor((JList<?>)component) :
           component instanceof JTree ? new TreeExtractor((JTree)component) :
           component instanceof JTable ? new TableExtractor((JTable)component) :
           TerminalUtils.isTerminalComponent(component) ? new TerminalExtractor(component) :
           null;
  }
static @Nullable TextExtractor getTextExtractor(@Nullable Component component)