com.fastchar.core.FastValidators Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of FastChar Show documentation
Show all versions of FastChar Show documentation
FastChar is Web+ORM Framework in Java
Copyright (C) http://www.fastchar.com
All rights reserved.
The newest version!
package com.fastchar.core;
import com.fastchar.annotation.AFastPriority;
import com.fastchar.interfaces.IFastValidator;
import com.fastchar.utils.FastClassUtils;
import com.fastchar.validators.FastRegularValidator;
import java.util.*;
public final class FastValidators {
private List> validatorClasses = new ArrayList<>();
public FastValidators add(Class converters) {
if (!FastClassUtils.checkNewInstance(converters)) {
return this;
}
validatorClasses.add(converters);
sortConverter();
return this;
}
public FastValidators putRegular(String key, String regular) {
FastRegularValidator.REGULARS.put(key, regular);
return this;
}
private void sortConverter() {
Comparator> comparator = new Comparator>() {
@Override
public int compare(Class o1, Class o2) {
int priority1 = 0;
int priority2 = 0;
if (o1.isAnnotationPresent(AFastPriority.class)) {
AFastPriority aFastPriority = o1.getAnnotation(AFastPriority.class);
priority1 = aFastPriority.value();
}
if (o2.isAnnotationPresent(AFastPriority.class)) {
AFastPriority aFastPriority = o2.getAnnotation(AFastPriority.class);
priority2 = aFastPriority.value();
}
return Integer.compare(priority2, priority1);
}
};
Collections.sort(validatorClasses, comparator);
}
public Object validate(String paramName, Object paramValue, String... validators) {
for (Class validatorClass : validatorClasses) {
IFastValidator validator = FastChar.getOverrides().newInstance(validatorClass);
if (validator != null) {
for (String s : validators) {
String valid = validator.validate(s, paramName, paramValue);
if (valid != null) {
return valid;
}
}
}
}
return null;
}
}