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

import org.litesoft.commonfoundation.annotations.*;
import org.litesoft.commonfoundation.base.*;
import org.litesoft.commonfoundation.charstreams.*;
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 ) {
        Confirm.isNotNull( "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
950 Diff Diff GeorgeS picture GeorgeS Thu 19 Jun, 2014 17:57:04 +0000

New Lines

948 Diff Diff GeorgeS picture GeorgeS Sat 07 Jun, 2014 23:42:39 +0000

Jusefuls Formatter Updated to New Code Format

947 Diff Diff GeorgeS picture GeorgeS Fri 06 Jun, 2014 23:36:56 +0000

Correct Spelling of package!

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

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 GeorgeS picture GeorgeS Mon 16 Jul, 2012 04:34:33 +0000