@Override
  protected void invoke(@NotNull ActionContext context, @NotNull PsiSwitchBlock switchBlock, @NotNull ModPsiUpdater updater) {
    final PsiExpression selector = switchBlock.getExpression();
    if (selector == null) return;
    final PsiClassType switchType = (PsiClassType)selector.getType();
    if (switchType == null) return;
    final PsiClass psiClass = switchType.resolve();
    if (psiClass == null) return;
    List<PsiSwitchLabelStatementBase> addedLabels = CreateSwitchBranchesUtil
      .createMissingBranches(switchBlock, getAllNames(psiClass, switchBlock), getNames(switchBlock), getCaseExtractor());
    CreateSwitchBranchesUtil.createTemplate(switchBlock, addedLabels, updater);
  }
@Override
  protected void invoke(@NotNull ActionContext context, @NotNull PsiSwitchBlock switchBlock, @NotNull ModPsiUpdater updater)