// Path: src/main/java/com/athaydes/logfx/data/LogLineColors.java
// public class LogLineColors {
// 
//     private final Paint background;
//     private final Paint fill;
// 
//     public LogLineColors( Paint background, Paint fill ) {
//         this.background = background;
//         this.fill = fill;
//     }
// 
//     public Paint getBackground() {
//         return background;
//     }
// 
//     public Paint getFill() {
//         return fill;
//     }
// }


import com.athaydes.logfx.data.LogLineColors;
import javafx.scene.paint.Paint;
import java.util.Objects;
import java.util.regex.Pattern;
package com.athaydes.logfx.text;



/**
 * A log line highlight expression.
 * <p>
 * This class is immutable, so every time the user changes one of its properties
 * the UI components managing it need to create a new instance.
 */
public final class HighlightExpression {

    private final Pattern expression;
    private final Paint bkgColor;
    private final Paint fillColor;
    private final boolean isFiltered;

    public HighlightExpression( String expression, Paint bkgColor, Paint fillColor, boolean isFiltered ) {
        this( Pattern.compile( expression ), bkgColor, fillColor, isFiltered );
    }

    public HighlightExpression( Pattern expression, Paint bkgColor, Paint fillColor, boolean isFiltered ) {
        this.expression = expression;
        this.bkgColor = bkgColor;
        this.fillColor = fillColor;
        this.isFiltered = isFiltered;
    }

    public Paint getBkgColor() {
        return bkgColor;
    }

    public Paint getFillColor() {
        return fillColor;
    }

    public Pattern getPattern() {
        return expression;
    }

    public boolean isFiltered() {
        return isFiltered;
    }

// Path: src/main/java/com/athaydes/logfx/data/LogLineColors.java
// public class LogLineColors {
// 
//     private final Paint background;
//     private final Paint fill;
// 
//     public LogLineColors( Paint background, Paint fill ) {
//         this.background = background;
//         this.fill = fill;
//     }
// 
//     public Paint getBackground() {
//         return background;
//     }
// 
//     public Paint getFill() {
//         return fill;
//     }
// }


// Path: src/main/java/com/athaydes/logfx/text/HighlightExpression.java
import com.athaydes.logfx.data.LogLineColors;
import javafx.scene.paint.Paint;
import java.util.Objects;
import java.util.regex.Pattern;

package com.athaydes.logfx.text;



/**
 * A log line highlight expression.
 * <p>
 * This class is immutable, so every time the user changes one of its properties
 * the UI components managing it need to create a new instance.
 */
public final class HighlightExpression {

    private final Pattern expression;
    private final Paint bkgColor;
    private final Paint fillColor;
    private final boolean isFiltered;

    public HighlightExpression( String expression, Paint bkgColor, Paint fillColor, boolean isFiltered ) {
        this( Pattern.compile( expression ), bkgColor, fillColor, isFiltered );
    }

    public HighlightExpression( Pattern expression, Paint bkgColor, Paint fillColor, boolean isFiltered ) {
        this.expression = expression;
        this.bkgColor = bkgColor;
        this.fillColor = fillColor;
        this.isFiltered = isFiltered;
    }

    public Paint getBkgColor() {
        return bkgColor;
    }

    public Paint getFillColor() {
        return fillColor;
    }

    public Pattern getPattern() {
        return expression;
    }

    public boolean isFiltered() {
        return isFiltered;
    }

    public LogLineColors getLogLineColors() {