// Path: droitatedDBProcessor/src/main/java/org/droitateddb/builder/schema/data/ValidatorInfo.java
// public class ValidatorInfo {
//     private String validatorClass;
//     private String validatorAnnotation;
//     private Map<String, Object> parameter;
// 
//     public ValidatorInfo(String validatorClass, String validatorAnnotation, Map<String, Object> parameter) {
//         this.validatorClass = validatorClass;
//         this.validatorAnnotation = validatorAnnotation;
//         this.parameter = parameter;
//     }
// 
//     public String getValidatorClass() {
//         return validatorClass;
//     }
// 
//     public String getValidatorAnnotation() {
//         return validatorAnnotation;
//     }
// 
//     public Map<String, Object> getParameter() {
//         return parameter;
//     }
// 
//     @Override
//     public String toString() {
//         return "ValidatorInfo{" +
//                 "validatorClass='" + validatorClass + '\'' +
//                 ", validatorAnnotation='" + validatorAnnotation + '\'' +
//                 ", parameter=" + parameter +
//                 '}';
//     }
// }


import org.droitateddb.builder.schema.data.Column;
import org.droitateddb.builder.schema.data.ColumnValidation;
import org.droitateddb.builder.schema.data.ValidatorInfo;
import org.droitateddb.schema.ColumnValidator;
import org.droitateddb.schema.SchemaConstants;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import static org.droitateddb.builder.Constants.CONSTANT_PREFIX;
import static org.droitateddb.builder.Constants.TAB;
                .append(nameToUpper)
                .append(" = new ")
                .append(columnType)
                .append(SchemaConstants.ATTRIBUTE_SUFFIX)
                .append("(\"")
                .append(column.getNameInEntity())
                .append("\", ")
                .append(column.getTypeInEntity())
                .append(".class, ")
                .append(columnIdx);

        appendColumnValidators(builder);
        builder.append(");\n");
        return builder.toString();
    }

    private void appendColumnValidators(StringBuilder builder) {
        ColumnValidation columnValidation = column.getColumnValidation();
        int amountOfValidator = columnValidation.size();
        if (amountOfValidator > 0) {
            builder.append(", ");
            for (int i = 0; i < amountOfValidator; i++) {
                addColumnValidator(builder, columnValidation.get(i));
                if (i < amountOfValidator - 1) {
                    builder.append(", ");
                }
            }
        }
    }

// Path: droitatedDBProcessor/src/main/java/org/droitateddb/builder/schema/data/ValidatorInfo.java
// public class ValidatorInfo {
//     private String validatorClass;
//     private String validatorAnnotation;
//     private Map<String, Object> parameter;
// 
//     public ValidatorInfo(String validatorClass, String validatorAnnotation, Map<String, Object> parameter) {
//         this.validatorClass = validatorClass;
//         this.validatorAnnotation = validatorAnnotation;
//         this.parameter = parameter;
//     }
// 
//     public String getValidatorClass() {
//         return validatorClass;
//     }
// 
//     public String getValidatorAnnotation() {
//         return validatorAnnotation;
//     }
// 
//     public Map<String, Object> getParameter() {
//         return parameter;
//     }
// 
//     @Override
//     public String toString() {
//         return "ValidatorInfo{" +
//                 "validatorClass='" + validatorClass + '\'' +
//                 ", validatorAnnotation='" + validatorAnnotation + '\'' +
//                 ", parameter=" + parameter +
//                 '}';
//     }
// }


// Path: droitatedDBProcessor/src/main/java/org/droitateddb/builder/schema/writer/ColumnWriter.java
import org.droitateddb.builder.schema.data.Column;
import org.droitateddb.builder.schema.data.ColumnValidation;
import org.droitateddb.builder.schema.data.ValidatorInfo;
import org.droitateddb.schema.ColumnValidator;
import org.droitateddb.schema.SchemaConstants;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import static org.droitateddb.builder.Constants.CONSTANT_PREFIX;
import static org.droitateddb.builder.Constants.TAB;

                .append(nameToUpper)
                .append(" = new ")
                .append(columnType)
                .append(SchemaConstants.ATTRIBUTE_SUFFIX)
                .append("(\"")
                .append(column.getNameInEntity())
                .append("\", ")
                .append(column.getTypeInEntity())
                .append(".class, ")
                .append(columnIdx);

        appendColumnValidators(builder);
        builder.append(");\n");
        return builder.toString();
    }

    private void appendColumnValidators(StringBuilder builder) {
        ColumnValidation columnValidation = column.getColumnValidation();
        int amountOfValidator = columnValidation.size();
        if (amountOfValidator > 0) {
            builder.append(", ");
            for (int i = 0; i < amountOfValidator; i++) {
                addColumnValidator(builder, columnValidation.get(i));
                if (i < amountOfValidator - 1) {
                    builder.append(", ");
                }
            }
        }
    }

    private void addColumnValidator(StringBuilder builder, ValidatorInfo validatorInfo) {