All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fastchar.core.FastValidators Maven / Gradle / Ivy

Go to download

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;
    }



}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy