MCStXPackageInfo.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 931 7378792d173b
child 1113 a75ffa5304cc
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
PackageInfo subclass:#MCStXPackageInfo
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
     4
	instanceVariableNames:'projectDefinition classes'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
686
24cbb3e4461c category change
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
     7
	category:'SCM-Monticello-St/X support'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!MCStXPackageInfo methodsFor:'accessing'!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
classes
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    14
    classes isNil ifTrue:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    15
        classes := self projectDefinition classes.
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    16
        "/ cg: not true; the projectDefinition is part of the package; at least for st/x packages.
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    17
        "/ classes remove: self projectDefinition ifAbsent:[].
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    19
        (classes includes:nil) ifTrue:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    20
            "/ some classes are not present - usually, these are architecture spcific classes
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    21
            "/ which are not present in this image (such as XWorkstation vs. WinWorkstation).
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    22
            "/ should do a query signal here, to get this info, instead of doing UI here..
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    23
            (Dialog confirm:'Not all classes as defined in the package are present in your image.\Typically, these are architecture or OS specific classes.\If you proceed, those classes will be missing in the enerated package file.\\Proceed?' withCRs)
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    24
            ifFalse:[
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    25
                AbortSignal raise
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    26
            ].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    27
            classes := classes select:[:cls | cls notNil].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    28
        ].
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    29
    ].
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^classes
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: / 23-08-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
534
9686e77eee0e changed: #classes
Claus Gittinger <cg@exept.de>
parents: 439
diff changeset
    33
    "Modified: / 02-12-2011 / 15:56:35 / cg"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
extensionMethods
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    37
    self assert:(self projectDefinition hasAllExtensionsLoaded).
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    ^self projectDefinition extensionMethods
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    40
        collect:[:mthd|
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    41
            self assert:mthd notNil.
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    42
            self
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    43
                referenceForMethod: mthd selector
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    44
                ofClass:mthd mclass
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    45
        ]
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 23-08-2011 / 11:58:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    48
    "Modified: / 27-08-2012 / 12:12:55 / cg"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
projectDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    projectDefinition isNil ifTrue:[
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
        projectDefinition := 
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
            (LibraryDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
                definitionClassForPackage: name
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
                createIfAbsent: true 
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
                projectType: nil)
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    ].
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    ^projectDefinition
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "Created: / 23-08-2011 / 13:37:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
systemCategories
931
7378792d173b class: MCStXPackageInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 846
diff changeset
    66
    | cats |
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
931
7378792d173b class: MCStXPackageInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 846
diff changeset
    68
    cats := self classes collect:[:cls | cls category] as: Set.
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    69
    cats remove: #'* Projects & Packages *'.
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    ^cats
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Created: / 23-08-2011 / 13:45:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
931
7378792d173b class: MCStXPackageInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 846
diff changeset
    73
    "Modified: / 03-10-2014 / 02:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    74
! !
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    75
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    76
!MCStXPackageInfo methodsFor:'testing'!
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    77
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    78
isMCStXPackageInfo
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    79
    ^ true
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    80
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    81
    "Created: / 29-05-2013 / 01:08:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
! !
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
!MCStXPackageInfo class methodsFor:'documentation'!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
version
931
7378792d173b class: MCStXPackageInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 846
diff changeset
    87
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXPackageInfo.st,v 1.8 2014-10-03 01:23:23 vrany Exp $'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
!
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
version_CVS
931
7378792d173b class: MCStXPackageInfo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 846
diff changeset
    91
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStXPackageInfo.st,v 1.8 2014-10-03 01:23:23 vrany Exp $'
572
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    92
!
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    93
1d700354f057 fixed: #extensionMethods
Claus Gittinger <cg@exept.de>
parents: 534
diff changeset
    94
version_MC
846
e6a552e98448 More support Squeak/Pharo interoperability - part 1:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 735
diff changeset
    95
    ^ '$stx:goodies/monticello-cg.3 4e70fe70-f030-11e1-ac62-001f3bda2d09 2012-08-27T12:16:46 cg$'
438
93ce2f9d03b6 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
! !
735
b7d63bf3b328 class: MCStXPackageInfo
Claus Gittinger <cg@exept.de>
parents: 686
diff changeset
    97