All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.zerobuilder.compiler.generate.DtoBeanGoalContext Maven / Gradle / Ivy

package net.zerobuilder.compiler.generate;

import com.google.common.collect.ImmutableList;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.FieldSpec;
import net.zerobuilder.compiler.analyse.DtoGoal.BeanGoal;
import net.zerobuilder.compiler.generate.DtoBuilders.BuildersContext;
import net.zerobuilder.compiler.generate.DtoGoalContext.AbstractGoalContext;
import net.zerobuilder.compiler.generate.DtoGoalContext.GoalCases;
import net.zerobuilder.compiler.generate.DtoStep.AbstractBeanStep;

public final class DtoBeanGoalContext {

  public final static class BeanGoalContext extends AbstractGoalContext {

    /**
     * alphabetic order unless {@link net.zerobuilder.Step} was used
     */
    final ImmutableList steps;
    final BeanGoal goal;
    final FieldSpec field;

    public BeanGoalContext(BeanGoal goal,
                           BuildersContext builders,
                           boolean toBuilder,
                           boolean builder,
                           ClassName contractName,
                           ImmutableList steps, FieldSpec field) {
      super(builders, toBuilder, builder, contractName);
      this.steps = steps;
      this.goal = goal;
      this.field = field;
    }

     R accept(GoalCases cases) {
      return cases.beanGoal(this);
    }
  }

  private DtoBeanGoalContext() {
    throw new UnsupportedOperationException("no instances");
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy