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

com.blossomproject.generator.classes.UpdateFormGenerator Maven / Gradle / Ivy

package com.blossomproject.generator.classes;

import com.blossomproject.core.common.search.SearchEngineImpl;
import com.blossomproject.generator.configuration.model.TemporalField;
import com.helger.jcodemodel.*;
import com.blossomproject.generator.configuration.model.Field;
import com.blossomproject.generator.configuration.model.Settings;
import com.blossomproject.generator.configuration.model.StringField;
import com.blossomproject.generator.utils.GeneratorUtils;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;

public class UpdateFormGenerator implements ClassGenerator {

  private AbstractJClass dtoClass;
  @Override
  public void prepare(Settings settings, JCodeModel codeModel) {
    this.dtoClass = codeModel.ref(GeneratorUtils.getDtoFullyQualifiedClassName(settings));
  }

  @Override
  public JDefinedClass generate(Settings settings, JCodeModel codeModel) {
    try {

      JDefinedClass definedClass = codeModel
        ._class(GeneratorUtils.getUpdateFormFullyQualifiedClassName(settings));

      JMethod constructor = definedClass.constructor(JMod.PUBLIC);
      JVar entityDTO = constructor.param(dtoClass, "entityDTO");
      // Fields
      for (Field field : settings.getFields()) {
        if (field.isPossibleUpdate()) {
          JFieldVar fieldVar = GeneratorUtils.addField(settings, codeModel, definedClass, field);
          constructor.body().assign(JExpr.refthis(fieldVar.name()), entityDTO.invoke(field.getGetterName()));
        }
      }

      JMethod constructorEmpty = definedClass.constructor(JMod.PUBLIC);

      return definedClass;
    } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException("Can't generate service DTO class", e);
    }
  }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy