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

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

package com.fastchar.core;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

final class FastCheck {
    private T target;
    private boolean rollback;

    FastCheck(T target) {
        this.target = target;
    }

    private List validators = new ArrayList<>();

    public T check(String validator) {
        if (rollback) {
            rollback = false;
            validators.clear();
        }
        validators.add(validator);
        return target;
    }


    public Object validate(String key, Object value) {
        rollback = true;
        if (value != null && value.getClass().isArray()) {
            int length = Array.getLength(value);
            if (length > 0) {
                for (int i = 0; i < length; i++) {
                    Object validate = FastChar.getValidators().validate(key, Array.get(value, i), validators.toArray(new String[]{}));
                    if (validate != null) {
                        return validate;
                    }
                }
            } else {
                return FastChar.getValidators().validate(key, null, validators.toArray(new String[]{}));
            }

        } else {
            return FastChar.getValidators().validate(key, value, validators.toArray(new String[]{}));
        }
        return null;
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy