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

com.jn.agileway.web.prediate.impl.PathMatchPredicateFactory Maven / Gradle / Ivy

package com.jn.agileway.web.prediate.impl;

import com.jn.agileway.web.prediate.HttpRequestPredicateFactory;
import com.jn.agileway.web.prediate.HttpRequestPredicates;
import com.jn.langx.annotation.Name;
import com.jn.langx.util.Objs;
import com.jn.langx.util.Strings;
import com.jn.langx.util.collection.Collects;

import java.util.List;

@Name("Path")
public class PathMatchPredicateFactory extends HttpRequestPredicateFactory {

    public PathMatchPredicateFactory() {
        setName(HttpRequestPredicates.PREDICATE_KEY_PATH);
    }

    @Override
    public PathMatchPredicate get(String configuration) {
        PathMatchPredicate predicate = new PathMatchPredicate();

        if (Strings.isNotBlank(configuration)) {
            List expressions = Collects.asList(Strings.split(configuration, " "));
            if (Objs.isNotEmpty(expressions)) {
                String includePatternExpression = expressions.get(0);
                predicate.setIncludePatterns(includePatternExpression);
                if (expressions.size() > 1) {
                    predicate.setExcludePatterns(expressions.get(1));
                }
            }
        }
        return predicate;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy