// 
// Decompiled by Procyon v0.6.0
// 

package org.jline.style;

import org.jline.utils.AttributedStyle;
import org.jline.utils.AttributedString;
import java.util.Objects;

public class StyleFactory
{
    private final StyleResolver resolver;
    
    public StyleFactory(final StyleResolver resolver) {
        this.resolver = Objects.requireNonNull(resolver);
    }
    
    public AttributedString style(final String style, final String value) {
        Objects.requireNonNull(value);
        final AttributedStyle astyle = this.resolver.resolve(style);
        return new AttributedString(value, astyle);
    }
    
    public AttributedString style(final String style, final String format, final Object... params) {
        Objects.requireNonNull(format);
        Objects.requireNonNull(params);
        return this.style(style, String.format(format, params));
    }
    
    public AttributedString evaluate(final String expression) {
        Objects.requireNonNull(expression);
        return new StyleExpression(this.resolver).evaluate(expression);
    }
    
    public AttributedString evaluate(final String format, final Object... params) {
        Objects.requireNonNull(format);
        Objects.requireNonNull(params);
        return this.evaluate(String.format(format, params));
    }
}
