Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt
package org.litesoft.codec;

import org.litesoft.commonfoundation.charstreams.*;
import org.litesoft.commonfoundation.annotations.*;

/**
 * Convert a Non Null String value to/from a self-terminating string representation
 */
public class NonNullStringTerminatingCodec
{
    public static final NonNullStringTerminatingCodec INSTANCE = new NonNullStringTerminatingCodec();

    public @NotNull void encode( CharSink pCharSink, String pValue )
    {
        PrimitiveIntegerCodec.NON_NEGATIVE.encode( pCharSink, pValue.length() );
        for ( int i = 0; i < pValue.length(); i++ )
        {
            pCharSink.add( pValue.charAt( i ) );
        }
    }

    public @NotNull String decode( CharSource pCharSource )
    {
        int zLength = PrimitiveIntegerCodec.NON_NEGATIVE.decode( pCharSource );
        if ( zLength == 0 )
        {
            return "";
        }
        StringBuilder zSB = new StringBuilder( zLength );
        while ( zLength-- > 0 )
        {
            zSB.append( pCharSource.getRequired() );
        }
        return zSB.toString();
    }
}

Commits for litesoft/trunk/Java/core/Anywhere/src/org/litesoft/codec/NonNullStringTerminatingCodec.java

Diff revisions: vs.
Revision Author Commited Message
942 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 23:41:46 +0000

Extracting commonfoundation

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

853 Diff Diff GeorgeS picture GeorgeS Sun 04 Nov, 2012 15:18:21 +0000
831 Diff Diff GeorgeS picture GeorgeS Fri 31 Aug, 2012 22:39:56 +0000
779 Diff Diff GeorgeS picture GeorgeS Mon 16 Jul, 2012 04:34:33 +0000
772 Diff Diff GeorgeS picture GeorgeS Sun 15 Jul, 2012 16:55:51 +0000

!

768 Diff Diff GeorgeS picture GeorgeS Sat 14 Jul, 2012 22:48:34 +0000

!

767 Diff Diff GeorgeS picture GeorgeS Sat 14 Jul, 2012 18:19:39 +0000
766 Diff Diff GeorgeS picture GeorgeS Sat 14 Jul, 2012 16:38:04 +0000

!

490 GeorgeS picture GeorgeS Fri 09 Sep, 2011 18:11:40 +0000

Encoding