@Override
    void replaceWithSorted(PsiElement origin) {
      VarargContext context = getContext(origin);
      if (context == null) return;
      SortableList sortableList = readEntries(context);
      if (sortableList == null) return;
      sortableList.sort();
      PsiExpressionList expressionList = context.myExpressionList;
      PsiMethodCallExpression call = ObjectUtils.tryCast(expressionList.getParent(), PsiMethodCallExpression.class);
      if (call == null) return;
      String methodName = call.getMethodExpression().getText();
      if (methodName == null) return;
      StringBuilder sb = new StringBuilder();
      for (PsiElement child : call.getChildren()) {
        if (child == expressionList) break;
        sb.append(child.getText());
      }
      PsiExpression firstVararg = context.myVarargArguments.get(0);
      PsiElement child = expressionList.getFirstChild();
      while(child != firstVararg) {
        sb.append(child.getText());
        child = child.getNextSibling();
      }
      boolean newLineRequired = sortableList.generate(sb);
      if (newLineRequired) {
        sb.append("\n");
      }
      sb.append(")");
      PsiElementFactory factory = JavaPsiFacade.getElementFactory(origin.getProject());
      call.replace(factory.createExpressionFromText(sb.toString(), call));
    }
@Override
    void replaceWithSorted(PsiElement origin)