1/*
2 * Copyright (c) 2007 Mockito contributors
3 * This program is made available under the terms of the MIT License.
4 */
5
6package org.mockito.internal.matchers;
7
8import java.io.Serializable;
9import java.util.regex.Pattern;
10
11import org.hamcrest.Description;
12import org.mockito.ArgumentMatcher;
13
14public class Find extends ArgumentMatcher<String> implements Serializable {
15
16    private static final long serialVersionUID = 8895781429480404872L;
17    private final String regex;
18
19    public Find(String regex) {
20        this.regex = regex;
21    }
22
23    public boolean matches(Object actual) {
24        return actual != null && Pattern.compile(regex).matcher((String) actual).find();
25    }
26
27    public void describeTo(Description description) {
28        description.appendText("find(\"" + regex.replaceAll("\\\\", "\\\\\\\\") + "\")");
29    }
30}