@Override
public MSimpleParameter build() {
MPattern p = !Strings.isEmpty(pattern) ? MD.getMPattern(pattern) : null;
List<Validator> validators = new ArrayList<>();
if(null != minLength || null != maxLength){
validators.add(new LengthValidator(minLength == null ? 0 : minLength, maxLength == null ? Integer.MAX_VALUE : maxLength));
}
if(null != minValue){
validators.add(new MinValidator(minValue));
}
if(null != maxValue){
validators.add(new MaxValidator(maxValue));
}
if(null != p){
validators.add(new PatternValidator(p.getName(),p.getPattern()));
}
return new MSimpleParameter(name, title, summary, description, secret,
(MSimpleType)type, required, defaultValue,
minLength,maxLength,minValue,maxValue,p,validators.toArray(new Validator[validators.size()]));
}
}