AbstractMultidimensionalArray.st
author Claus Gittinger <cg@exept.de>
Wed, 28 Aug 2019 18:29:21 +0200
changeset 24675 4826b24634fa
parent 24591 2efa5f69125c
child 25119 1dbc4341b4c0
permissions -rw-r--r--
#DOCUMENTATION by exept class: AbstractMultidimensionalArray class added: #isAbstract
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24574
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
SequenceableCollection variableSubclass:#AbstractMultidimensionalArray
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Collections-MultiDimensional'
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
24675
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    13
!AbstractMultidimensionalArray class methodsFor:'queries'!
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    14
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    15
isAbstract
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    16
    "Return if this class is an abstract class.
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    17
     True is returned here for myself only; false for subclasses.
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    18
     Abstract subclasses must redefine this again."
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    19
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    20
    ^ self == AbstractMultidimensionalArray.
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    21
! !
4826b24634fa #DOCUMENTATION by exept
Claus Gittinger <cg@exept.de>
parents: 24591
diff changeset
    22
24591
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    23
!AbstractMultidimensionalArray methodsFor:'accessing'!
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    24
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    25
dimensions
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    26
    self subclassResponsibility
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    27
! !
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    28
24574
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!AbstractMultidimensionalArray methodsFor:'error handling'!
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
dimensionError
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    self error:'number of dimensions vs. number of given indices'
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
! !
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
24591
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    35
!AbstractMultidimensionalArray methodsFor:'queries'!
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    36
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    37
isSquare
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    38
    |dims|
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    39
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    40
    dims := self dimensions.
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    41
    ^ dims size == 2
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    42
    and:[(dims at:1) == (dims at:2)]
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    43
! !
2efa5f69125c #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24574
diff changeset
    44
24574
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!AbstractMultidimensionalArray class methodsFor:'documentation'!
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
version_CVS
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    ^ '$Header$'
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
! !
da29ade15da2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50