TwoByteString.st
author Claus Gittinger <cg@exept.de>
Wed, 03 Apr 2013 20:53:03 +0200
changeset 15054 1667e3fe9e8b
parent 14557 427740fc4329
child 16750 394404a33691
child 18011 deb0c3355881
permissions -rw-r--r--
class: Autoload changed: #autoload when autoloading a class, make sure any extensions of the classes package are also loaded. If a projectDefinition is present, let it load them; otherwise, look for a file named \"extensions.st\" where the autoloaded class is loaded from. This helps with saved code, which has not yet been packaged correctly.

"
 COPYRIGHT (c) 1993 by Claus Gittinger
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libbasic' }"

CharacterArray variableWordSubclass:#TwoByteString
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Collections-Text'
!

!TwoByteString class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1993 by Claus Gittinger
	      All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    TwoByteStrings are like strings, but storing 16bits per character.
    The integration of them into the system is not completed ....

    [author:]
        Claus Gittinger

    [see also:]
        Text JISEncodedString
        StringCollection
"
! !

!TwoByteString class methodsFor:'initialization'!

initialize
    "initialize the class - private"

    self flags:(Behavior flagWords)

    "
     TwoByteString initialize
    "

    "Modified: 22.4.1996 / 16:14:14 / cg"
! !

!TwoByteString class methodsFor:'instance creation'!

basicNew:anInteger
    "return a new empty string with anInteger characters"

    ^ (super basicNew:anInteger) atAllPut:(Character space)

    "Modified: 26.2.1996 / 14:38:47 / cg"
! !

!TwoByteString methodsFor:'accessing'!

basicAt:index
    "return the character at position index, an Integer
     - reimplemented here since we return 16-bit characters"

    |val|

    val := super basicAt:index.
    ^ Character value:val

    "Modified: 26.2.1996 / 17:02:16 / cg"
!

basicAt:index put:aCharacter
    "store the argument, aCharacter at position index, an Integer.
     Returns aCharacter (sigh).
     - reimplemented here since we store 16-bit characters"

    super basicAt:index put:aCharacter codePoint.
    ^ aCharacter

    "Modified: 19.4.1996 / 11:16:22 / cg"
!

unsignedShortAt:index
    "return the short at position index, an Integer"

    ^ super basicAt:index.
! !

!TwoByteString methodsFor:'queries'!

bitsPerCharacter
    "return the number of bits each character has.
     Here, 16 is returned (storing double byte characters)."

    ^ 16

    "Modified: 20.4.1996 / 23:08:38 / cg"
!

isWideString
    ^ true
! !

!TwoByteString class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libbasic/TwoByteString.st,v 1.34 2012-12-12 22:56:13 stefan Exp $'
! !

TwoByteString initialize!