[
https://issues.apache.org/jira/browse/CODEC-158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469295#comment-13469295
]
Gary D. Gregory commented on CODEC-158:
---------------------------------------
I fear this kind of band-aid will make adding generics an even more complicated
task and harder on any kind of SC/BC. Well, the way I see generics (see my
previous comment and the link to the branch with generics in it) would break BC
anyway IIRC.
If we could agree on what a generic version of codec looks like, issues like
this one would partially fall out nicely.
I do not think we should fiddle with the hierarchy in 1.x. IMO, rearranging the
H should be done in the context of adding generics.
> 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
>
> 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