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.charstreams.*;
import org.litesoft.commonfoundation.annotations.*;
import org.litesoft.commonfoundation.typeutils.*;
import org.litesoft.mementobeansupport.*;

/**
 * Convert Mementoable value to/from a self-terminating string representation
 */
public class MemoableTypedTerminatingCodec<T extends Mementoable<T>> extends AbstractTypedTerminatingCodec<T>
{
    private T mDefaultInstance;

    public MemoableTypedTerminatingCodec( T pDefaultInstance )
    {
        Objects.assertNotNull( "DefaultInstance", mDefaultInstance = pDefaultInstance );
    }

    @Override
    protected @NotNull void encodeNonNull( CharSink pCharSink, T pValue )
    {
        CharSink zCharSink = new CharSinkToString();
        pValue.toMemento( zCharSink );
        String zEncodedAsString = zCharSink.toString();
        StringTypedTerminatingCodec.INSTANCE.encodeNonNull( pCharSink, zEncodedAsString );
    }

    @Override
    protected @NotNull T decodeNonNull( CharSource pCharSource )
    {
        String zEncodedAsString = StringTypedTerminatingCodec.INSTANCE.decodeNonNull( pCharSource );
        CharSource zCharSource = new CharSourceFromSequence( zEncodedAsString );
        return validateConsumed( zEncodedAsString, zCharSource, mDefaultInstance.fromMemento( zCharSource ) );
    }
}

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

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

Extracting commonfoundation

834 Diff Diff GeorgeS picture GeorgeS Sun 02 Sep, 2012 14:00:11 +0000
814 Diff Diff GeorgeS picture GeorgeS Sat 18 Aug, 2012 17:52:17 +0000
813 Diff Diff GeorgeS picture GeorgeS Sat 18 Aug, 2012 17:48:21 +0000
804 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 12:48:51 +0000
779 Diff Diff GeorgeS picture GeorgeS Mon 16 Jul, 2012 04:34:33 +0000
773 Diff Diff GeorgeS picture GeorgeS Sun 15 Jul, 2012 22:39:12 +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 GeorgeS picture GeorgeS Sat 14 Jul, 2012 18:19:39 +0000