class Matcher {

    private Matcher() {
      // Utility-class should not be instantiated
    }

    /**
     * Check if the given value matches with the conditionString. If the
     * conditionString is not a regular expression, turn it into one.
     * 
     * @param value           The value to match against
     * @param conditionString The condition that should match -- may or may not be a
     *                        regular expression
     * @return <code>true</code> if the value matches the conditionString
     */
    static boolean matches(String value, String conditionString) {<FILL_FUNCTION_BODY>}
}

        if (value == null && conditionString == null) {
            return true;
        }
        if (value == null ^ conditionString == null) {
            return false;
        }
        conditionString = conditionString.replace("*", ".*").replace("..*", ".*");
        if (!conditionString.startsWith("^") && !conditionString.startsWith(".*")) {
            conditionString = ".*" + conditionString;
        }
        if (!conditionString.endsWith("$") && !conditionString.endsWith(".*")) {
            conditionString += ".*";
        }
        return value.matches(conditionString);
    
<no_super_class>