commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LANG-1266) Add alphabet converter
Date Tue, 13 Sep 2016 08:19:20 GMT

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

ASF GitHub Bot commented on LANG-1266:
--------------------------------------

GitHub user eyala opened a pull request:

    https://github.com/apache/commons-lang/pull/188

    LANG-1266 Add alphabet converter

    (as described in [the mailing list](http://mail-archives.apache.org/mod_mbox/commons-dev/201609.mbox/%3c289983494.3057706.1472720010277@mail.yahoo.com%3e))
    
    This is a utility class I wrote for converting from one alphabet to another - for example,
from unicode to latin, without using some of the chars in latin. The usage looks like this:
    
    ```
    Set<Character> originals; // a, b, c, d
    Set<Character> encoding; // 0, 1, d
    Set<Character> doNotEncode; // d
    
    AlphabetConverter ac = AlphabetConverter.createConverter(originals, encoding, doNotEncode);
    
    ac.encode("a"); // 00
    ac.encode("b"); // 01
    ac.encode("c"); // 0d
    ac.encode("d"); // d
    ac.encode("abcd"); // 00010dd
    ```
    Of course, 
    
    `x.equals(ac.decode(ac.encode(x)))`
    
     should always be true.
    
    The implementation provided makes the encodings of fixed length, other than the "do not
encode" chars, which remain as they are (length one).
    
    In addition, in order to make it easier to preserve the encoding scheme, I've added a
human-readable toString implementation, and a constructor that can recreate an AlphabetConverter
from the encoding map, such that:
    ```
    
    AlphabetConverter ac;
    
    ac.equals(AlphabetConverter.createConverterFromMap(ac.getOriginalToEncoded())); // always
should be true
    
    ```

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/eyala/commons-lang LANG-1266

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/commons-lang/pull/188.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #188
    
----
commit c1a5a638a3132f2048bb4113181460c3c660c2a8
Author: eallweil <eallweil@paypal.com>
Date:   2016-09-13T08:15:06Z

    LANG-1266 Add alphabet converter

----


> Add alphabet converter
> ----------------------
>
>                 Key: LANG-1266
>                 URL: https://issues.apache.org/jira/browse/LANG-1266
>             Project: Commons Lang
>          Issue Type: New Feature
>          Components: lang.text.*
>            Reporter: Eyal Allweil
>
> (as described in [the mailing list|http://mail-archives.apache.org/mod_mbox/commons-dev/201609.mbox/%3c289983494.3057706.1472720010277@mail.yahoo.com%3e])
> This is a utility class I wrote for converting from one alphabet to another - for example,
from unicode to latin, without using some of the chars in latin. The usage looks like this:
> {code}
> Set<Character> originals; // a, b, c, d
> Set<Character> encoding; // 0, 1, d
> Set<Character> doNotEncode; // d
> AlphabetConverter ac = AlphabetConverter.createConverter(originals, encoding, doNotEncode);
> ac.encode("a"); // 00
> ac.encode("b"); // 01
> ac.encode("c"); // 0d
> ac.encode("d"); // d
> ac.encode("abcd"); // 00010dd
> {code}
> Of course, x.equals(ac.decode(ac.encode(x))) should always be true.
> The implementation provided makes the encodings of fixed length, other than the "do not
encode" chars, which remain as they are (length one).
> In addition, in order to make it easier to preserve the encoding scheme, I've added a
human-readable toString implementation, and a constructor that can recreate an AlphabetConverter
from the encoding map, such that:
> {code}
> AlphabetConverter ac;
> ac.equals(AlphabetConverter.createConverterFromMap(ac.getOriginalToEncoded())); // always
should be true
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message