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
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt
package org.litesoft.codec;

import org.litesoft.core.annotations.*;
import org.litesoft.core.util.*;

/**
 * Convert String value to/from a self-terminating string representation
 */
public class StringCodec extends AbstractCodec<String>
{
    public static final StringCodec INSTANCE = new StringCodec();

    @Override
    protected @NotNull String encodeNonNull( String pValue )
    {
        return IntegerCodec.NonNegativePrimitive.INSTANCE.encode( pValue.length() ) + pValue;
    }

    @Override
    protected @NotNull String decodeNonNull( CharSource pCharSource )
    {
        int zLength = IntegerCodec.NonNegativePrimitive.INSTANCE.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/StringCodec.java

Diff revisions: vs.
Revision Author Commited Message
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 Diff Diff GeorgeS picture GeorgeS Fri 09 Sep, 2011 18:11:40 +0000

Encoding

50 Diff Diff GeorgeS picture GeorgeS Tue 13 Apr, 2010 11:51:38 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000