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

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

/**
 * Convert Float value to/from a self-terminating string representation
 */
public abstract class AbstractToFromNonEmptyStringTypedTerminatingCodec<T> extends AbstractTypedTerminatingCodec<T>
{
    private String mType;

    protected AbstractToFromNonEmptyStringTypedTerminatingCodec( String pType )
    {
        mType = pType;
    }

    protected void encodeString( CharSink pCharSink, String pValue )
    {
        int zLength = Integers.assertPositive( "String of " + mType, pValue.length() );
        IntegerTypedTerminatingCodec.NON_NEGATIVE.encode( pCharSink, zLength - 1 );
        for ( int i = 0; i < pValue.length(); i++ )
        {
            pCharSink.add( pValue.charAt( i ) );
        }
    }

    protected String decodeString( CharSource pCharSource )
    {
        int zLength = IntegerTypedTerminatingCodec.NON_NEGATIVE.decode( pCharSource ) + 1;
        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/AbstractToFromNonEmptyStringTypedTerminatingCodec.java

Diff revisions: vs.
Revision Author Commited Message
939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

847 GeorgeS picture GeorgeS Fri 07 Sep, 2012 15:53:36 +0000