[ 
https://issues.apache.org/jira/browse/CODEC-158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13558006#comment-13558006
 ] 

Thomas Neidhart commented on CODEC-158:
---------------------------------------

I am in favor of integrating this change as it makes sense and is quite useful 
as Mirko pointed out in his example.
Regarding the name, what do you think of the following:

 * [Binary, String]Coder
 * [Binary, String]Endec (see http://en.wikipedia.org/wiki/Endec)
                
> 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
>         Attachments: CODEC-158.patch, CODEC-158.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 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