packages/PackagesInstalled.st
author Claus Gittinger <cg@exept.de>
Sun, 07 Jul 2019 23:42:57 +0200
changeset 4453 5e6ad8c5a97e
parent 1445 b8cc2792ab97
child 3011 1997ff6e7e55
permissions -rw-r--r--
#FEATURE by cg class: AbstractSourceCodeManager class added: #revisionLogOfFile:fromRevision:toRevision: #revisionLogOfFile:fromRevision:toRevision:finishAfter: #revisionLogOfFile:numberOfRevisions: comment/format in: #revisionLogOf:fromRevision:toRevision:numberOfRevisions:fileName:directory:module: #revisionLogOf:numberOfRevisions:fileName:directory:module:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1445
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     1
"
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     2
 COPYRIGHT (c) 2003 by eXept Software AG
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     3
              All Rights Reserved
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     4
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     5
 This software is furnished under a license and may be used
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     6
 only in accordance with the terms of that license and with the
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     8
 be provided or otherwise made available to, or used by, any
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
     9
 other person.  No title to or ownership of the software is
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    10
 hereby transferred.
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    11
"
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    12
1231
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    13
"{ Package: 'stx:libbasic3' }"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    14
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    15
"{ NameSpace: Packages }"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    16
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    17
Object subclass:#PackagesInstalled
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    18
	instanceVariableNames:'collection workingPackage'
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    19
	classVariableNames:''
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    20
	poolDictionaries:''
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    21
	category:'Package-helpers'
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    22
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    23
1445
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    24
!PackagesInstalled class methodsFor:'documentation'!
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    25
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    26
copyright
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    27
"
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    28
 COPYRIGHT (c) 2003 by eXept Software AG
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    29
              All Rights Reserved
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    30
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    31
 This software is furnished under a license and may be used
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    32
 only in accordance with the terms of that license and with the
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    34
 be provided or otherwise made available to, or used by, any
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    35
 other person.  No title to or ownership of the software is
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    36
 hereby transferred.
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    37
"
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
    38
! !
1231
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    39
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    40
!PackagesInstalled class methodsFor:'instance creation'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    41
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    42
new
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    43
    ^ self basicNew initialize.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    44
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    45
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    46
workingPackage:aPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    47
    ^ self new workingPackage:aPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    48
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    49
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    50
!PackagesInstalled methodsFor:'* As yet uncategorized *'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    51
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    52
allPackages
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    53
    ^ collection copy at:#workinPackage put:workingPackage; yourself.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    54
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    55
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    56
select:aBlock 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    57
    ^ self allPackages values select:aBlock
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    58
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    59
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    60
!PackagesInstalled methodsFor:'accessing'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    61
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    62
workingPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    63
    "return the value of the instance variable 'currentPackage' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    64
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    65
    ^ workingPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    66
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    67
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    68
workingPackage:something
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    69
    "set the value of the instance variable 'currentPackage' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    70
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    71
    workingPackage := something.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    72
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    73
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    74
!PackagesInstalled methodsFor:'adding & removing'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    75
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    76
atKey:aSymbol 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    77
    
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    78
    ^ collection at:aSymbol
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    79
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    80
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    81
pop
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    82
    collection removeKey:collection last key
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    83
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    84
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    85
pop:aNumber 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    86
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    87
    aNumber timesRepeat:[ self pop].
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    88
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    89
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    90
popAt:aKey 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    91
    collection removeKey:aKey.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    92
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    93
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    94
popAt:aKey ifAbsent:aBlock
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    95
    collection removeKey:aKey ifAbsent:aBlock.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    96
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    97
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    98
pull
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    99
    ^ self pop
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   100
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   101
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   102
pull:aNumber
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   103
    | col |
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   104
    col :=  collection last:aNumber.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   105
    self pop:aNumber.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   106
    ^ col
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   107
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   108
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   109
pullAt:aKey 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   110
    ^ collection removeKey:aKey.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   111
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   112
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   113
pullAt:aKey ifAbsent:aBlock
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   114
    ^ collection removeKey:aKey ifAbsent:aBlock.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   115
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   116
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   117
push:aPackage 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   118
    
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   119
    ^ collection at:aPackage name put:aPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   120
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   121
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   122
removeKey:aSymbol 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   123
    
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   124
    ^ collection removeKey:aSymbol
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   125
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   126
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   127
top
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   128
    ^ collection last value
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   129
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   130
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   131
!PackagesInstalled methodsFor:'enumerating'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   132
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   133
do:aBlock 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   134
    "goes through all the objects in the collection"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   135
    aBlock value:workingPackage.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   136
    collection reverseDo:[:anAssociation | aBlock value:anAssociation value]
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   137
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   138
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   139
!PackagesInstalled methodsFor:'initialization'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   140
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   141
initialize
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   142
    collection := OrderedDictionary new.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   143
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   144
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   145
!PackagesInstalled methodsFor:'queries'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   146
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   147
includes:aPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   148
    ^ (aPackage == workingPackage or:[(collection includesValue:aPackage)]).
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   149
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   150
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   151
includesKey:aKey
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   152
    ^ (collection includesKey:aKey)
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   153
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   154
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   155
isEmpty
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   156
    ^ collection isEmpty
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   157
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   158
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   159
!PackagesInstalled class methodsFor:'documentation'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   160
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   161
version
1445
b8cc2792ab97 copyright
Claus Gittinger <cg@exept.de>
parents: 1231
diff changeset
   162
    ^ '$Header: /cvs/stx/stx/libbasic3/packages/PackagesInstalled.st,v 1.2 2006-01-10 09:32:15 cg Exp $'
1231
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   163
! !