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

com.blossomproject.generator.configuration.EnumFieldBuilder Maven / Gradle / Ivy

package com.blossomproject.generator.configuration;

import com.blossomproject.generator.configuration.model.Field;
import com.blossomproject.generator.configuration.model.impl.EnumField;

public class EnumFieldBuilder extends FieldBuilder {


    private final Class enumClass;

    EnumFieldBuilder(FieldsBuilder parent, String name, Class enumClass) {
        super(parent, name, enumClass, "varchar(" + maxSize(enumClass) + ")");
        this.enumClass = enumClass;
    }

    @Override
    Field build() {
        return new EnumField(name, columnName, className, jdbcType, required, updatable, nullable,
                defaultValue, searchable, maxSize(enumClass));
    }

    private static int maxSize(Class enumClass) {
        int maxSize = 0;
        for (Enum enumValue : enumClass.getEnumConstants()) {
            maxSize = Math.max(maxSize, enumValue.name().length());
        }
        return maxSize;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy