Mirko Raner created CODEC-158:
---------------------------------

             Summary: Add Codec, StringCodec, and BinaryCodec interfaces that 
extend both encoder and decoder
                 Key: CODEC-158
                 URL: https://issues.apache.org/jira/browse/CODEC-158
             Project: Commons Codec
          Issue Type: Improvement
    Affects Versions: 1.7
            Reporter: Mirko Raner
            Priority: Minor


Currently, there are no common interfaces that extend both the encoder and the 
decoder interfaces. This makes it hard to deal with a codec as a single entity 
and requires separate treatment of encoder and decoder parts.
For example, let's say you want to develop a storage abstraction that uses an 
encoding. Right now, you would need to write

class Storage
{
    @Inject Encoder encoder;
    @Inject Decoder decoder;
    //...
}

In practice, encoder and decoder need to match, and most likely both encoder 
and decoder would be bound to the same implementation, like Base64 or URLCodec. 
Because of the lack of a common superinterface they need to be specified 
separately. There are some classes like BaseNCodec that can be used to unify 
some of the encoders and decoders, but they are too specific and restrictive.
Ideally, I would like to write:

class Storage
{
    @Inject Codec codec;
    //...
}

Assuming that combined encoder/decoder classes like Base64 would implement that 
Codec interface, this could be directly bound to a combined encoder/decoder 
implementation.

It would be nice if these interfaces were added and the existing codec classes 
(BaseNCodec, Hex, QCodec, QuotedPrintableCodec, URLCodec) could be modified to 
implement these new interfaces.

I'm happy to contribute a patch if there is interest in this feature.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to