public static boolean hasStartToken(String expression, String language) {
        if (expression == null) {
            return false;
        }

        // for the simple language the expression start token could be "${"
        if ("simple".equalsIgnoreCase(language) && expression.contains("${")) {
            return true;
        }

        if (language != null && expression.contains("$" + language + "{")) {
            return true;
        }

        return false;
    }
@Test
    public void testHasStartToken() {
        assertFalse(StringHelper.hasStartToken(null, null));
        assertFalse(StringHelper.hasStartToken(null, "simple"));
        assertFalse(StringHelper.hasStartToken("", null));
        assertFalse(StringHelper.hasStartToken("", "simple"));
        assertFalse(StringHelper.hasStartToken("Hello World", null));
        assertFalse(StringHelper.hasStartToken("Hello World", "simple"));

        assertFalse(StringHelper.hasStartToken("${body}", null));
        assertTrue(StringHelper.hasStartToken("${body}", "simple"));
        assertTrue(StringHelper.hasStartToken("$simple{body}", "simple"));

        assertFalse(StringHelper.hasStartToken("${body}", null));
        assertFalse(StringHelper.hasStartToken("${body}", "foo"));
        // $foo{ is valid because its foo language
        assertTrue(StringHelper.hasStartToken("$foo{body}", "foo"));
    }