class HqlQueryTranslator extends
        AbstractHibernateQueryTranslator<String, String, String> implements
        QueryTranslator<String, String, String> {

    protected String string(Object o) {
        if (o instanceof Object[]) {
            return "[" + Joiner.on(",").join(
                    Lists.transform(Arrays.asList((Object[])o), toString)
            ) + "]";
        } else if (o instanceof String) {
            return "\"" + ((String)o).replace("\"", "\\\"") + "\"";
        } else if (o instanceof Character) {
            return "'" + (o.toString().replace("'", "\\'")) + "'";
        } else if (o instanceof Date) {
            return string(dateFormat.format((Date)o));
        }
        return o.toString();
    }

    public  HqlQueryTranslator(HibernatePropertyResolver propertyResolver,
            BoxMaker boxMaker,
            ContainsExpressionHandler<String> containsExpressionHandler);
    public  HqlQueryTranslator(HibernatePropertyResolver propertyResolver,
            BoxMaker boxMaker);
    public  HqlQueryTranslator(HibernatePropertyResolver propertyResolver);

}