packages/StxPackageFileHandler.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 31 May 2018 10:52:50 +0100
branchjv
changeset 4330 998eb03f0736
parent 3011 1997ff6e7e55
permissions -rw-r--r--
Copyright updates
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
PackageHandler subclass:#StxPackageFileHandler
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    18
	instanceVariableNames:'package filename'
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-Handlers'
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
!StxPackageFileHandler 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
!StxPackageFileHandler class methodsFor:'instance creation'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    41
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    42
forFilename:aFilename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    43
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    44
    (self isFileBase:aFilename) ifTrue:[
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    45
        ^ StxBasePackageHandler forFilename:aFilename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    46
    ].
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    47
    (self isFileVersion1:aFilename) ifTrue:[
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    48
        ^ Version1 forFilename:aFilename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    49
    ].
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    50
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    51
    self error:'File type unknown'
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    52
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    53
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    54
forPackage:aPackage 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    55
    ^ self basicNew package:aPackage
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    56
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    57
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    58
openStxPackageFormat:aFormat
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    59
    ^ ((StxPackageFileReader) version:aFormat) new
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    60
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    61
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    62
version:aVersionNumber
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    63
    aVersionNumber == 0 ifTrue:[
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    64
        ^ StxBasePackageHandler.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    65
    ].
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    66
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    67
    aVersionNumber == 1 ifTrue:[
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    68
        ^ Version1.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    69
    ].
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    70
    self error:'Version unknown'
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    71
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    72
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    73
!StxPackageFileHandler class methodsFor:'accessing-globals'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    74
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    75
packageManager
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    76
    ^ PackageManager smalltalkPackageManager
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    77
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    78
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    79
!StxPackageFileHandler class methodsFor:'queries'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    80
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    81
isFileBase:aFilename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    82
    ^ false
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    83
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    84
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    85
isFileVersion1:aFilename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    86
    ^ true
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    87
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    88
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    89
!StxPackageFileHandler methodsFor:'accessing'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    90
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    91
filename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    92
    "return the value of the instance variable 'filename' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    93
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    94
    ^ filename
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    95
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    96
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    97
filename:something
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    98
    "set the value of the instance variable 'filename' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
    99
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   100
    filename := something.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   101
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   102
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   103
package
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   104
    "return the value of the instance variable 'package' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   105
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   106
    ^ package
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   107
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   108
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   109
package:something
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   110
    "set the value of the instance variable 'package' (automatically generated)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   111
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   112
    package := something.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   113
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   114
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   115
version
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   116
    ^ 1
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   117
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   118
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   119
!StxPackageFileHandler methodsFor:'api'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   120
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   121
fileInFrom:arg1 notifying:arg2 passChunk:arg3 single:arg4 silent:arg5 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   122
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   123
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   124
installPackageIn:aPackageManager 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   125
    ^ (self newPackageReader) installPackageIn:aPackageManager 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   126
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   127
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   128
loadPackageIn:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   129
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   130
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   131
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   132
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   133
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   134
savePackageAs:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   135
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   136
    ^ (self newPackageWriter) savePackageAs:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   137
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   138
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   139
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   140
savePackageOn:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   141
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   142
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   143
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   144
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   145
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   146
uninstallPackageFrom:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   147
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   148
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   149
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   150
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   151
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   152
unloadPackageIn:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   153
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   154
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   155
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   156
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   157
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   158
!StxPackageFileHandler methodsFor:'checks'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   159
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   160
canReadFilename:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   161
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   162
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   163
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   164
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   165
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   166
checkOkToInstall:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   167
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   168
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   169
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   170
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   171
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   172
checkOkToUninstall:arg 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   173
    "raise an error: must be redefined in concrete subclass(es)"
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   174
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   175
    ^ self subclassResponsibility
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   176
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   177
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   178
!StxPackageFileHandler methodsFor:'factory'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   179
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   180
newPackageReader
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   181
    ^ (self packageReaderClass version:self version) new 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   182
            filename:filename;
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   183
            package:package.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   184
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   185
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   186
newPackageWriter
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   187
    ^ (self packageWriterClass version:self version) new 
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   188
            package:package.
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   189
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   190
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   191
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   192
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   193
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   194
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   195
packageReaderClass
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   196
    ^ StxPackageFileReader
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   197
!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   198
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   199
packageWriterClass
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   200
    ^ StxPackageFileWriter
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   201
! !
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   202
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   203
!StxPackageFileHandler class methodsFor:'documentation'!
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   204
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   205
version
3011
1997ff6e7e55 trunk branched into /branches/jv
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1445
diff changeset
   206
    ^ '$Header: /var/local/cvs/stx/libbasic3/packages/StxPackageFileHandler.st,v 1.2 2006-01-10 09:32:05 cg Exp $'
1231
2f3a15bfac92 initial checkin
james
parents:
diff changeset
   207
! !