org.cryptacular.codec.Encoder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Liferay SAML OpenSAML Integration
/* See LICENSE for licensing and NOTICE for copyright. */
package org.cryptacular.codec;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import org.cryptacular.EncodingException;
/**
* Describes a potentially stateful byte-to-character encoder.
*
* @author Middleware Services
*/
public interface Encoder
{
/**
* Encodes bytes in input buffer into characters placed in the output buffer. This method may be called multiple
* times, followed by {@link #finalize(java.nio.CharBuffer)} after all input bytes have been provided.
*
* @param input Input byte buffer.
* @param output Output character buffer.
*
* @throws EncodingException on encoding errors.
*/
void encode(ByteBuffer input, CharBuffer output) throws EncodingException;
/**
* Performs final output encoding (e.g. padding) after all input bytes have been provided.
*
* @param output Output character buffer.
*
* @throws EncodingException on encoding errors.
*/
void finalize(CharBuffer output) throws EncodingException;
/**
* Expected number of characters in the output buffer for an input buffer of the given size.
*
* @param inputSize Size of input buffer in bytes.
*
* @return Minimum character buffer size required to store all encoded input bytes.
*/
int outputSize(int inputSize);
}