[
https://issues.apache.org/jira/browse/CODEC-158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirko Raner updated CODEC-158:
------------------------------
Attachment: CODEC-158.patch
Attached are the modifications I had in mind to address this. Please let me
know if you have any questions or improvements.
There is already a class called BinaryCodec in package
org.apache.commons.codec.binary. The new BinaryCodec interface in
org.apache.commons.codec may be confused with this existing class. In the
patch, the naming is consistent (i.e. StringEncoder+StringDecoder->StringCodec
and BinaryEncoder+BinaryDecoder->BinaryCodec) and the two types are
distinguishable by their package. If you feel this could be a problem, please
make a suggestion as to how this can be resolved.
Thanks!
> 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