ng-tracker/src/main/java/ru/ulstu/odin/model/OdinStringField.java

38 lines
1.1 KiB
Java

package ru.ulstu.odin.model;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Size;
import ru.ulstu.odin.model.annotation.OdinString;
import ru.ulstu.odin.model.annotation.OdinString.OdinStringType;
import java.lang.reflect.Field;
import static ru.ulstu.odin.model.annotation.OdinString.OdinStringType.EMAIL;
public class OdinStringField extends OdinField {
private final int minLength;
private final int maxLength;
private final OdinStringType type;
public OdinStringField(Field field) {
super(field, OdinFieldType.STRING);
this.minLength = getValue(Size.class, "min", Integer.class);
this.maxLength = getValue(Size.class, "max", Integer.class);
this.type = field.isAnnotationPresent(Email.class)
? EMAIL
: getValue(OdinString.class, "type", OdinStringType.class);
}
public int getMinLength() {
return minLength;
}
public int getMaxLength() {
return maxLength;
}
public String getType() {
return type.toString();
}
}