STONReference.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 04 Jun 2019 12:33:53 +0100
changeset 0 8f9f6be6af89
permissions -rw-r--r--
Initial port from Pharo Based on 305ae856d4b551 from https://github.com/svenvc/ston.git
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/ston' }"
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
Object subclass:#STONReference
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'index'
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'STON-Core-Reader'
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!STONReference class methodsFor:'instance creation'!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
index: integer
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	^ self new
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
		index: integer;
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
		yourself
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
! !
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!STONReference methodsFor:'accessing'!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
index
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	^ index
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
index: integer
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	index := integer
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
! !
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!STONReference methodsFor:'comparing'!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
= anObject
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	^ self class == anObject class and: [ self index = anObject index ]
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
hash
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	^ index hash
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
! !
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
!STONReference methodsFor:'printing'!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
printOn: stream
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
	super printOn: stream.
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
	stream nextPut: $(; print: index; nextPut: $)
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
! !
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
!STONReference methodsFor:'testing'!
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
isStonReference
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
	^ true
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
8f9f6be6af89 Initial port from Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52