ParsersImpl.java

package io.github.jonloucks.variants.impl;

import io.github.jonloucks.variants.api.Parsers;

import java.util.List;
import java.util.Optional;
import java.util.function.Function;

final class ParsersImpl implements Parsers {

    @Override
    public <T> Function<CharSequence, Optional<List<T>>> ofList(Function<CharSequence, Optional<T>> of, String delimiter) {
        return new OfListImpl<>(of, new SplitByRegex(delimiter).compile()).compile();
    }

    @Override
    public <T extends Enum<T>> Function<CharSequence,T> enumParser(Class<T> enumClass) {
        return new EnumParserImpl<>(enumClass).compile();
    }
    
    @Override
    public CharSequence trim(CharSequence text) {
        return new TrimTextImpl(text).trim();
    }
    
    ParsersImpl() {
    
    }
}