package de.flower.rmt.model.dto;
import de.flower.common.validation.spring.BeanAssert;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.ScriptAssert;
import javax.validation.constraints.Size;
import javax.validation.groups.Default;
import java.io.Serializable;
/**
* Model class for usage in password-change form.
*
* @author flowerrrr
*/
@ScriptAssert(script = "_this.isEqualPasswords()",
message = Password.Validation.passwordNotEqualMessage, lang = "javascript",
groups = { Password.Validation.IPasswordEquals.class, Default.class}
)
@BeanAssert(beanClass = IPasswordValidator.class,
message = Password.Validation.passwordNotValidMessage,
groups = { Password.Validation.IPasswordMatches.class, Default.class }
)
public class Password implements Serializable {
public interface Validation {
public interface IPasswordEquals {}
public interface IPasswordMatches {}
public final static String passwordNotEqualMessage = "{validation.password.new.notequal}";
public final static String passwordNotValidMessage = "{validation.password.old.invalid}";
}
@NotBlank(message = "{validation.notblank.password}")
private String oldPassword;
@NotBlank(message = "{validation.notblank.password}")
@Size(min = 4, max = 50)
private String newPassword;
@NotBlank(message = "{validation.notblank.password}")
// no additional constraints cause it must match #newPassword anyway.
private String newPasswordRepeat;
private Long userId;
public Password(final Long userId) {
this.userId = userId;
}
public boolean isEqualPasswords() {
return newPassword != null && newPassword.equals(newPasswordRepeat);
}
public String getOldPassword() {
return oldPassword;
}
public void setOldPassword(final String oldPassword) {
this.oldPassword = oldPassword;
}
public String getNewPassword() {
return newPassword;
}
public void setNewPassword(final String newPassword) {
this.newPassword = newPassword;
}
public String getNewPasswordRepeat() {
return newPasswordRepeat;
}
public void setNewPasswordRepeat(final String newPasswordRepeat) {
this.newPasswordRepeat = newPasswordRepeat;
}
public Long getUserId() {
return userId;
}
public void setUserId(final Long userId) {
this.userId = userId;
}
}