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

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

There is a newer version: 1.603
Show newest version
package net.zerobuilder.compiler.generate;

import com.squareup.javapoet.TypeName;
import net.zerobuilder.compiler.generate.DtoBeanParameter.AbstractBeanParameter;
import net.zerobuilder.compiler.generate.DtoGoalDetails.BeanGoalDetails;
import net.zerobuilder.compiler.generate.DtoProjectedDescription.ProjectedDescription;
import net.zerobuilder.compiler.generate.DtoProjectedDescription.ProjectedDescriptionCases;
import net.zerobuilder.compiler.generate.DtoSimpleDescription.SimpleDescription;

import java.util.List;

public final class DtoBeanGoalDescription {

  /**
   * Describes the task of creating and / or updating a JavaBean.
   */
  public static final class BeanGoalDescription
      implements ProjectedDescription, SimpleDescription {

    final BeanGoalDetails details;
    final List parameters;
    final List thrownTypes;

    private BeanGoalDescription(BeanGoalDetails details,
                                List parameters,
                                List thrownTypes) {
      this.details = details;
      this.parameters = parameters;
      this.thrownTypes = thrownTypes;
    }

    public static BeanGoalDescription create(BeanGoalDetails details, List parameters,
                                             List thrownTypes) {
      return new BeanGoalDescription(details, parameters, thrownTypes);
    }

    @Override
    public  R acceptProjected(ProjectedDescriptionCases cases) {
      return cases.bean(this);
    }

    @Override
    public  R acceptSimple(DtoSimpleDescription.SimpleDescriptionCases cases) {
      return cases.bean(this);
    }
  }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy