@Override public int hashCode() { int result = decoder != null ? decoder.hashCode() : 0; result = 31 * result + (encoder != null ? encoder.hashCode() : 0); result = 31 * result + (encodingFilter != null ? encodingFilter.hashCode() : 0); return result; }
@Override public ParsingResult decode(Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final Buffer input = httpContent.getContent(); final TransformationResult<Buffer, Buffer> result = decoder.transform(httpHeader, input); Buffer remainder = result.getExternalRemainder(); if (remainder == null || !remainder.hasRemaining()) { input.tryDispose(); remainder = null; } else { input.shrink(); } try { switch (result.getStatus()) { case COMPLETE: { httpContent.setContent(result.getMessage()); decoder.finish(httpHeader); return ParsingResult.create(httpContent, remainder); } case INCOMPLETE: { return ParsingResult.create(null, remainder); } case ERROR: { throw new IllegalStateException( "LZMA decode error. Code: " + result.getErrorCode() + " Description: " + result.getErrorDescription()); } default: throw new IllegalStateException("Unexpected status: " + result.getStatus()); } } finally { result.recycle(); } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; LZMAContentEncoding that = (LZMAContentEncoding) o; if (decoder != null ? !decoder.equals(that.decoder) : that.decoder != null) return false; if (encoder != null ? !encoder.equals(that.encoder) : that.encoder != null) return false; if (encodingFilter != null ? !encodingFilter.equals(that.encodingFilter) : that.encodingFilter != null) return false; return true; }