"{ Encoding: utf8 }"
"{ Package: 'stx:libbasic' }"
"{ NameSpace: CharacterEncoderImplementations }"
CharacterEncoder subclass:#CompoundEncoder
instanceVariableNames:'decoder encoder'
classVariableNames:''
poolDictionaries:''
category:'Collections-Text-Encodings'
!
!CompoundEncoder class methodsFor:'documentation'!
documentation
"
A compoundEncoder uses two real encoders;
to encode:
string -> decoder(encode) -> encoder -> result
to decode:
string -> encoder -> decoder -> result
|e|
e := CompoundEncoder new.
e encoder:ISO8859_5 decoder:KOI8_R.
e decode:16rB0. 'CYRILLIC CAPITAL LETTER A; 16rB0 in 8859-5; 16rE1 in KOI8-R'.
e encode:16rE1.
"
! !
!CompoundEncoder methodsFor:'accessing'!
encoder:encoderArg decoder:decoderArg
"set instance variables (automatically generated)"
decoder := decoderArg.
encoder := encoderArg.
! !
!CompoundEncoder methodsFor:'encoding & decoding'!
decode:aCode
^ decoder encode:(encoder decode:aCode)
!
decodeString:aString
^ decoder encodeString:(encoder decodeString:aString)
!
encode:aCode
^ encoder encode:(decoder decode:aCode)
!
encodeString:aString
^ encoder encodeString:(decoder decodeString:aString)
! !
!CompoundEncoder methodsFor:'printing'!
printOn:aStream
aStream
nextPutAll:(decoder nameOfEncoding);
nextPutAll:'->'.
"/ nextPutAll:(decoder nameOfDecodedCode);
"/ nextPutAll:'->';
"/ nextPutAll:(encoder nameOfEncoding)
encoder printOn:aStream
! !
!CompoundEncoder class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic/Attic/Encoder_CompoundEncoder.st,v 1.1 2004-03-05 17:20:32 cg Exp $'
! !