package de.plushnikov.intellij.plugin.action.delombok;
import de.plushnikov.intellij.plugin.processor.clazz.ToStringProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.builder.BuilderClassProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.builder.BuilderPreDefinedInnerClassFieldProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.builder.BuilderPreDefinedInnerClassMethodProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.builder.BuilderProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.constructor.AllArgsConstructorProcessor;
import de.plushnikov.intellij.plugin.processor.clazz.constructor.NoArgsConstructorProcessor;
import de.plushnikov.intellij.plugin.processor.handler.BuilderHandler;
import de.plushnikov.intellij.plugin.processor.method.BuilderClassMethodProcessor;
import de.plushnikov.intellij.plugin.processor.method.BuilderMethodProcessor;
import org.jetbrains.annotations.NotNull;
public class DelombokBuilderAction extends BaseDelombokAction {
public DelombokBuilderAction() {
super(createHandler());
}
@NotNull
private static BaseDelombokHandler createHandler() {
final NoArgsConstructorProcessor noArgsConstructorProcessor = new NoArgsConstructorProcessor();
final ToStringProcessor toStringProcessor = new ToStringProcessor();
final BuilderHandler builderHandler = new BuilderHandler(toStringProcessor, noArgsConstructorProcessor);
final AllArgsConstructorProcessor allArgsConstructorProcessor = new AllArgsConstructorProcessor();
return new BaseDelombokHandler(true,
new BuilderPreDefinedInnerClassFieldProcessor(builderHandler),
new BuilderPreDefinedInnerClassMethodProcessor(builderHandler),
new BuilderClassProcessor(builderHandler),
new BuilderClassMethodProcessor(builderHandler),
new BuilderMethodProcessor(builderHandler),
new BuilderProcessor(allArgsConstructorProcessor, builderHandler));
}
}