microsoft-azure-storage/src/com/microsoft/azure/storage/table/TableOperation.java
protected TableResult parseResponse(final InputStream inStream, final int httpStatusCode, String etagFromHeader,
            final OperationContext opContext, final TableRequestOptions options) throws 
            InstantiationException, IllegalAccessException, StorageException, JsonParseException, IOException {
        TableResult resObj;

        if (this.opType == TableOperationType.INSERT && this.echoContent) {
            // Sending null for class type and resolver will ignore parsing the return payload.
            resObj = TableDeserializer.parseSingleOpResponse(inStream, options, httpStatusCode, null /* clazzType */,
                    null /*resolver */, opContext);
            resObj.setEtag(etagFromHeader);
            resObj.updateResultObject(this.getEntity());
        }
        else {
            resObj = new TableResult(httpStatusCode);
            resObj.setResult(this.getEntity());

            if (this.opType != TableOperationType.DELETE && etagFromHeader != null) {
                resObj.setEtag(etagFromHeader);
                resObj.updateResultObject(this.getEntity());
            }
        }

        return resObj;
    }
protected TableResult parseResponse(final InputStream inStream, final int httpStatusCode, String etagFromHeader,
            final OperationContext opContext, final TableRequestOptions options) throws 
            InstantiationException, IllegalAccessException, StorageException, JsonParseException, IOException {
        TableResult resObj;

        if (this.opType == TableOperationType.INSERT && this.echoContent) {
            // Sending null for class type and resolver will ignore parsing the return payload.
            resObj = TableDeserializer.parseSingleOpResponse(inStream, options, httpStatusCode, null /* clazzType */,
                    null /*resolver */, opContext);
            resObj.setEtag(etagFromHeader);
            resObj.updateResultObject(this.getEntity());
        }
        else {
            resObj = new TableResult(httpStatusCode);
            resObj.setResult(this.getEntity());

            if (this.opType != TableOperationType.DELETE && etagFromHeader != null) {
                resObj.setEtag(etagFromHeader);
                resObj.updateResultObject(this.getEntity());
            }
        }

        return resObj;
    }
Reserved for internal use. Parses the table operation response into a {@link TableResult} to return.

@param inStream
An <code>InputStream</code> which specifies the response to an insert operation.
@param httpStatusCode
An <code>int</code> which represents the HTTP status code returned from the operation request.
@param etagFromHeader
The <code>String</code> which specifies the Etag returned with the operation response.
@param opContext
An {@link OperationContext} object that represents the context for the current operation.

@return
The {@link TableResult} representing the result of the operation.

@throws InstantiationException
if an error occurs in object construction.
@throws IllegalAccessException
if an error occurs in reflection on an object type.
@throws StorageException
if an error occurs in the storage operation.
@throws IOException
if an error occurs while accessing the {@link InputStream} with Json.
@throws JsonParseException
if an error occurs while parsing the Json, if Json is used.