38 lines
1.1 KiB
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();
|
|
}
|
|
}
|