@Override
  public boolean test(final String functionName) {
    if (functionName == null
        || functionName.trim().isEmpty()
        || JAVA_RESERVED_WORDS.contains(functionName.toLowerCase())
        || KSQL_RESERVED_WORDS.contains(functionName.toLowerCase())) {
      return false;
    }
    return isValidJavaIdentifier(functionName);

  }
@Test
  public void shouldNotAllowInvalidJavaIdentifiers() {
    assertFalse(validator.test("@foo"));
    assertFalse(validator.test("1foo"));
    assertFalse(validator.test("^foo"));
    assertFalse(validator.test("&foo"));
    assertFalse(validator.test("%foo"));
    assertFalse(validator.test("+foo"));
    assertFalse(validator.test("-foo"));
    assertFalse(validator.test("#foo"));
    assertFalse(validator.test("f1@%$"));
  }