output.append(ph.getMailboxIdStr()); output.append('/'); output.append(ph.getItemId());
output.append(ph.getParsedItemID().toString());
        private void outputResults(ZimbraQueryResults res, int offset, int limit, File outputDirectory) throws ServiceException         {            for (ZimbraHit cur = res.skipToHit(offset); ((cur != null) && (offset<limit)); cur = res.getNext()) {                //System.out.println(offset+": "+cur.toString());                if (cur instanceof ProxiedHit) {                    ProxiedHit ph = (ProxiedHit)cur;                                        StringBuffer output = new StringBuffer();                    output.append(offset);                    output.append(") ");                                        output.append(ph.getMailboxIdStr());                    output.append('/');                    output.append(ph.getItemId());                    output.append(" - ");                    Date date = new Date(cur.getDate());                    output.append(date);                    output.append(" - ");                    output.append(cur.getName());                    output.append("- ");                    output.append(cur.getSubject());                    output.append("- ");                    output.append(ph.getFragment());                                        System.out.println(output.toString());                                                            if (outputDirectory != null) {                        saveMessageBody(outputDirectory, offset, ph.getServer(), ph.getMailboxIdStr(), ph.getItemId());                    }                                        offset++;                } else {                    // could directly get the blob, but for now just disallow this case                    assert(false);                    throw ServiceException.PERM_DENIED("Error CrossMailboxSearch ran local search!");                }            }        }