@SuppressWarnings("unchecked") public void writeResult(Object iResult, final String iFormat) throws InterruptedException, IOException { if (iResult == null) send( OHttpUtils.STATUS_OK_NOCONTENT_CODE, "", OHttpUtils.CONTENT_TEXT_PLAIN, null, null, true); else { if (iResult instanceof Map<?, ?>) { iResult = ((Map<?, ?>) iResult).entrySet().iterator(); } else if (OMultiValue.isMultiValue(iResult) && (OMultiValue.getSize(iResult) > 0 && !(OMultiValue.getFirstValue(iResult) instanceof OIdentifiable))) { final List<OIdentifiable> resultSet = new ArrayList<OIdentifiable>(); resultSet.add(new ODocument().field("value", iResult)); iResult = resultSet.iterator(); } else if (iResult instanceof OIdentifiable) { // CONVERT SIGLE VALUE IN A COLLECTION final List<OIdentifiable> resultSet = new ArrayList<OIdentifiable>(); resultSet.add((OIdentifiable) iResult); iResult = resultSet.iterator(); } else if (iResult instanceof Iterable<?>) iResult = ((Iterable<OIdentifiable>) iResult).iterator(); else if (OMultiValue.isMultiValue(iResult)) iResult = OMultiValue.getMultiValueIterator(iResult); else { final List<OIdentifiable> resultSet = new ArrayList<OIdentifiable>(); resultSet.add(new ODocument().field("value", iResult)); iResult = resultSet.iterator(); } if (iResult == null) send( OHttpUtils.STATUS_OK_NOCONTENT_CODE, "", OHttpUtils.CONTENT_TEXT_PLAIN, null, null, true); else if (iResult instanceof Iterator<?>) writeRecords((Iterator<OIdentifiable>) iResult, null, iFormat); } }