class ExecutableDeterminationVisitor extends BaseVisitor {

    public static boolean isNegated(Object data) {
        if (data == null || StringUtils.isEmpty(data.toString().trim())) {
            return false;
        } else {
            // flatten the string
            String trimmed = data.toString().trim();
            int notCount = 0;
            // loop over the characters and count nots to see if negated or not
            for (int i = 0; i < trimmed.length(); i++) {
                if (trimmed.charAt(i) == NEGATION_PREFIX.charAt(0)) {
                    notCount++;
                }
            }
            
            // odd number of nots apply negation
            if (notCount % 2 == 1) {
                return true;
            } else {
                return false;
            }
        }
    }

    public  ExecutableDeterminationVisitor(ShardQueryConfiguration conf, MetadataHelper metadata, boolean forFieldIndex);
    public  ExecutableDeterminationVisitor(ShardQueryConfiguration conf, MetadataHelper metadata, boolean forFieldIndex, List<String> debugOutput);

}