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

com.jn.agileway.web.prediate.impl.MethodPredicateFactory 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 com.jn.langx.util.collection.Pipeline;
import com.jn.langx.util.function.Functions;
import com.jn.langx.util.function.Predicate;

import java.util.List;

@Name("Method")
public class MethodPredicateFactory extends HttpRequestPredicateFactory {

    public MethodPredicateFactory() {
        setName(HttpRequestPredicates.PREDICATE_KEY_METHOD);
    }

    @Override
    public MethodPredicate get(String configuration) {
        MethodPredicate predicate = new MethodPredicate();
        if (Objs.isNotEmpty(configuration)) {
            List methods = Collects.asList(Strings.split(configuration, ", "));
            methods = Pipeline.of(methods)
                    .map(Functions.toUpperCase())
                    .filter(new Predicate() {
                        @Override
                        public boolean test(String value) {
                            return MethodPredicate.DEFAULT_METHODS.contains(value);
                        }
                    })
                    .asList();
            predicate.setMethods(methods);
        }
        return predicate;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy