SourceOperation (@NotNull String name, @NotNull PsiType type, PsiExpression @NotNull [] args) { if ("empty".equals(name) && args.length == 0) { return new Empty(type); } if ("of".equals(name) && args.length == 1) { return new Of(type, args[0]); } if ("ofNullable".equals(name) && args.length == 1) { return new OfNullable(type, args[0]); } return null; }