class Query {

    public String toQueryParam()
    {
        String translatedValue = value.toString();
        try
        {
            translatedValue = URLEncoder.encode(translatedValue, StandardCharsets.UTF_8.name());
        }
        catch(UnsupportedEncodingException e)
        {
            logger.error(String.format("%1$s encoding is not supported. The world is ending.", StandardCharsets.UTF_8.name()), e);
        }

        return BY_PREFIX + field.name() + "=" + translatedValue;
    }

    public  Query();
    public  Query(String field, T value);
    public  Query(DataField field, T value);
    public  Query(DataField field, T value, boolean isCollection);

}