class SolrQueryTranslator extends
        AbstractQueryTranslator<String, SolrOrderings, List<String>> implements
        QueryTranslator<String, SolrOrderings, List<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(dateFormatter.print(new DateTime((Date) o)));
        } else if (o instanceof DateTime) {
            return string(dateFormatter.print((DateTime) o));
        }
        return o.toString();
    }

    public  SolrQueryTranslator(PropertyResolver propertyResolver);

}