common/SCMAbstractPackageModel.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 27 Feb 2014 10:33:33 +0000
changeset 384 d946e0f0f12a
parent 382 b661dd389038
child 387 ebec1ef28839
permissions -rw-r--r--
Two more tests for nested packages.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     3
Copyright (C) 2012-2013 Jan Vrany
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     5
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
     7
License as published by the Free Software Foundation; either
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
     8
version 2.1 of the License.
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    10
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    13
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    14
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    16
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    18
"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
"{ Package: 'stx:libscm/common' }"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
Object subclass:#SCMAbstractPackageModel
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    22
	instanceVariableNames:'name parent children repository repositoryRoot wc wcroot
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    23
		classesHasChanged extensionsHasChanged'
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
	classVariableNames:''
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
	poolDictionaries:''
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
	category:'SCM-Common-StX'
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
!SCMAbstractPackageModel class methodsFor:'documentation'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    31
copyright
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    32
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    33
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    34
Copyright (C) 2012-2013 Jan Vrany
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    35
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    36
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    37
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    38
License as published by the Free Software Foundation; either
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
    39
version 2.1 of the License.
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    40
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    41
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    42
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    43
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    44
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    45
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    46
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    47
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 305
diff changeset
    48
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    49
"
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    50
!
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    51
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
documentation
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
    A model of a Smalltalk/X package in repository. It knows how to
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
    map living classes to their respective file containers and can
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    56
    fileout individual classes.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    57
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    58
    Package models forms a hiearchy that copies package hiearchy. The root
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    59
    has no parent and represent a package which is located in the root
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    60
    of the repository. Examples:
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    61
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    62
    stx:libscm           ---> parent = nil,         repository = /home/.../build/stx/libscm, repositoryPath = '.'
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    63
    stx:libscm/common    ---> parent = stx:libscm,  repository = /home/.../build/stx/libscm, repositoryPath = 'common'
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    64
    stx:libscm/mercurial ---> parent = stx:libscm,  repository = /home/.../build/stx/libscm, repositoryPath = 'mercurial'
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    65
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    66
    In this case, the HGRepository object is shared by all three package models.
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    67
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    68
    [author:]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    69
        Jan Vrany <jan.vrany@fit.cvut.cz>
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    70
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    71
    [instance variables:]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    72
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    73
    [class variables:]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    74
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    75
    [see also:]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    77
"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    78
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    79
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    80
!SCMAbstractPackageModel class methodsFor:'instance creation'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    81
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
    82
named: package
68
0abe8aeae95a Utility methods
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 66
diff changeset
    83
    self subclassResponsibility
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    84
68
0abe8aeae95a Utility methods
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 66
diff changeset
    85
    "Created: / 16-11-2012 / 19:52:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    86
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    87
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    88
new
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    89
    "return an initialized instance"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    90
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    91
    ^ self basicNew initialize.
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    92
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    93
382
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    94
!SCMAbstractPackageModel class methodsFor:'testing'!
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    95
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    96
isAbstract
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    97
    ^ self == SCMAbstractPackageModel
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    98
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
    99
    "Created: / 13-11-2012 / 23:07:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   100
    "Modified: / 25-02-2014 / 22:38:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   101
! !
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   102
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   103
!SCMAbstractPackageModel methodsFor:'accessing'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   104
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   105
classes
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   106
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   107
    ^self classesIncludingPrivate reject:[:cls|cls owningClass notNil]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   108
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   109
    "Created: / 06-10-2012 / 23:14:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   110
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   111
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   112
classesFiltered: classFilter
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   113
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   114
    ^self classes select: [:class|classFilter value: class].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   115
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   116
    "Created: / 06-10-2012 / 23:14:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   117
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   118
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   119
classesIncludingPrivate
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   120
    ^ProjectDefinition searchForClassesWithProject: self name
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   121
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   122
    "Created: / 06-10-2012 / 23:15:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   123
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   124
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   125
commitDialog
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   126
    ^self commitDialogClass new
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   127
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   128
    "Modified: / 14-11-2012 / 22:31:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   129
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   130
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   131
commitTask
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   132
    ^self commitTaskClass new
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   133
        package: self;
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   134
        yourself
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   135
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   136
    "Created: / 06-10-2012 / 22:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   137
    "Modified: / 13-11-2012 / 23:22:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   138
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   139
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   140
construct: aString
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   141
    "Create a package model for subpackage named aString"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   142
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   143
    | normalizedName components package |
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   144
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   145
    normalizedName := (aString includes: $:) ifTrue:[aString copyReplaceAll:$: with:$/] ifFalse:[aString].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   146
    ( normalizedName includes: $/) ifFalse:[
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   147
        ^self childNamed: normalizedName.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   148
    ].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   149
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   150
    components := normalizedName tokensBasedOn: $/.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   151
    package := self.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   152
    components do:[:each|package := package childNamed: each].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   153
    ^package
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   154
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   155
    "Created: / 16-11-2012 / 23:47:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   156
    "Modified: / 03-12-2012 / 14:04:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   157
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   158
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   159
definition
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   160
    ^LibraryDefinition definitionClassForPackage:self name createIfAbsent:true
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   161
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   162
    "Created: / 06-10-2012 / 23:09:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   163
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   164
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   165
extensions
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   166
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   167
    ^ProjectDefinition searchForExtensionsWithProject: self name
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   168
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   169
    "Created: / 06-10-2012 / 23:12:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   170
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   171
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   172
extensionsFiltered:aBlock
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   173
    ^self extensions select:aBlock
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   174
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   175
    "Created: / 06-10-2012 / 23:19:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   176
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   177
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   178
manager
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   179
    "Returns a source code manager for this kind of package"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   180
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   181
    ^self subclassResponsibility
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   182
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   183
    "Created: / 14-11-2012 / 01:02:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   184
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   185
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   186
name
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   187
    ^ name
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   188
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   189
120
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   190
repositoryRoot
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   191
    "Returns relative path within the repository root where the package
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   192
     content is located. Example: let's assume:
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   193
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   194
     <repo>/.hg
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   195
     <repo>/mercurial/...
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   196
     <repo>/mercurial/tests/...
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   197
     <repo>/common/..
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   198
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   199
     then
120
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   200
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   201
     (HGPackageModelRegistry packageNamed: 'stx:libscm/mercurial/tests') path
120
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   202
        == 'mercurial/tests'
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   203
    "
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   204
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   205
    self assert: repositoryRoot notNil.
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   206
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   207
    ^repositoryRoot
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   208
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   209
    "Created: / 01-12-2012 / 02:03:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   210
!
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   211
382
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   212
revision
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   213
    "Return a logical revision of the package, i.e., a revision
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   214
     on which the next commit will be based on"              
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   215
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   216
    ^ self subclassResponsibility
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   217
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   218
    "Modified (comment): / 25-02-2014 / 22:41:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   219
!
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   220
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   221
temporaryWorkingCopy
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   222
    self ensureTemporaryWorkingCopy.
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   223
    ^wc
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   224
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   225
    "Created: / 01-12-2012 / 00:26:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   226
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   227
217
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   228
temporaryWorkingCopyPath
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   229
    "Return the directory which contains temporary working copy.
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   230
     The directory may not exists if the temporary working copy has
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   231
     not yet been initialized (which is done on demand)"
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   232
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   233
    ^ self manager temporaryWorkingCopyDirectory / repository uuid printString
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   234
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   235
    "Created: / 05-02-2013 / 09:30:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   236
!
927249b447cd Added SCMAbstractPackageModel>>temporaryWorkingCopyPath.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   237
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   238
temporaryWorkingCopyRoot
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   239
    self ensureTemporaryWorkingCopy.
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   240
    ^ wcroot
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   241
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   242
    "Created: / 14-11-2012 / 23:51:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   243
! !
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   244
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   245
!SCMAbstractPackageModel methodsFor:'accessing-classes'!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   246
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   247
commitDialogClass
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   248
    self subclassResponsibility
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   249
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   250
    "Created: / 14-11-2012 / 22:29:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   251
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   252
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   253
commitTaskClass
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   254
    "raise an error: must be redefined in concrete subclass(es)"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   255
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   256
    ^ self subclassResponsibility
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   257
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   258
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   259
!SCMAbstractPackageModel methodsFor:'accessing-containers'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   260
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   261
containerFilenameFor: containerName
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   262
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   263
    ^self temporaryWorkingCopyRoot / containerName
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   264
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   265
    "Created: / 09-10-2008 / 20:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   266
    "Modified: / 01-12-2012 / 00:24:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   267
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   268
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   269
containerNameForClass:cls
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   270
    ^self
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   271
        containerNameForClassNamed: cls theNonMetaclass fullName
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   272
        language: cls programmingLanguage
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   273
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   274
    "Created: / 07-10-2012 / 10:36:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   275
    "Modified: / 15-11-2012 / 00:46:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   276
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   277
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   278
containerNameForClassNamed: nm language: lang
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   279
    ^String streamContents:[:s|
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   280
        s nextPutAll: (nm copyReplaceAll:$: with: $_).
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   281
        s nextPut: $..
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   282
        s nextPutAll: lang sourceFileSuffix
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   283
    ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   284
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   285
    "Created: / 15-11-2012 / 00:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   286
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   287
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   288
containerNameForExtensions
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   289
    ^self containerNameForExtensions: SmalltalkLanguage instance
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   290
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   291
    "Created: / 07-10-2012 / 10:37:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   292
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   293
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   294
containerNameForExtensions: aProgrammingLanguage
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   295
    ^'extensions.' , aProgrammingLanguage sourceFileSuffix
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   296
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   297
    "Created: / 07-10-2012 / 10:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   298
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   299
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   300
containerNameForExtensions: aProgrammingLanguage javaClass: aJavaClass
352
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   301
    | class classBinaryName comps |
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   302
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   303
    class := aJavaClass theNonMetaClass.
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   304
    "Sigh, make it compatible with old and new naming of Java classes
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   305
352
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   306
    old -> aJavaClass name == #'java/lang/Object'
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   307
    new -> aJavaClass name == JAVA::java::lang::Object
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   308
           aJavaClass binaryName == #'java/lang/Object'
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   309
    "
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   310
    classBinaryName := (class respondsTo: #binaryName)
352
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   311
                            ifTrue:[ class binaryName ]
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   312
                            ifFalse:[ class name ].
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   313
    self assert: (classBinaryName includes: $:) not.
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   314
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   315
    ^ String streamContents:[:s|
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   316
        s nextPutAll: 'java/extensions'.
352
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   317
        comps := classBinaryName tokensBasedOn: $/.
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   318
        comps do:[:each| s nextPut: $/; nextPutAll: each ].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   319
        s nextPut: $.; nextPutAll: aProgrammingLanguage sourceFileSuffix.
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   320
    ].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   321
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   322
    "Created: / 24-09-2013 / 11:31:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
352
c49eddaa3b74 Fix in SCMAbstractPackageModel>>#containerNameForExtensions:javaClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
   323
    "Modified: / 09-10-2013 / 08:56:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   324
!
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   325
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   326
containerSuffixes
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   327
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   328
    ^ProgrammingLanguage all collect:[:each|each sourceFileSuffix]
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   329
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   330
    "Created: / 23-03-2009 / 18:53:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   331
    "Modified: / 30-12-2009 / 18:15:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   332
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   333
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   334
containerWriteStreamFor: containerName
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   335
    | filename directory |
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   336
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   337
    filename := self containerFilenameFor: containerName.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   338
    (directory := filename directory) exists ifFalse:[
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   339
        directory recursiveMakeDirectory
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   340
    ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   341
    ^filename writeStream
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   342
        eolMode: #nl;
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   343
        yourself
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   344
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   345
    "Created: / 09-10-2008 / 20:24:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   346
    "Modified: / 04-09-2012 / 23:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   347
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   348
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   349
containerWriteStreamForClass:cls
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   350
    ^self containerWriteStreamFor: (self containerNameForClass:cls)
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   351
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   352
    "Created: / 07-10-2012 / 10:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   353
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   354
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   355
containerWriteStreamForExtensions: aProgrammingLanguage
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   356
    ^self containerWriteStreamFor: (self containerNameForExtensions: aProgrammingLanguage)
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   357
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   358
    "Created: / 30-12-2009 / 18:14:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   359
    "Modified: / 07-10-2012 / 10:54:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   360
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   361
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   362
containerWriteStreamForExtensions: aProgrammingLanguage javaClass: aJavaClass
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   363
    | container |
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   364
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   365
    container := self containerFilenameFor: (self containerNameForExtensions: aProgrammingLanguage javaClass: aJavaClass).
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   366
    container directory exists ifFalse:[
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   367
         container directory recursiveMakeDirectory.
345
a25283e84b95 Fix for filing out Java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   368
    ].
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   369
    ^ container writeStream
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   370
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   371
    "Created: / 04-09-2012 / 23:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   372
    "Modified: / 24-09-2013 / 12:07:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   373
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   374
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   375
containers
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   376
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   377
    | containers jextensions |
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   378
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   379
    containers := OrderedCollection new.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   380
    containers addAll:
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   381
        (wcroot directoryContents select:
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   382
                [:container|self containerSuffixes anySatisfy:
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   383
                    [:suffix|container endsWith:suffix]]) asSet.
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   384
    (jextensions:= wcroot / 'java' / 'extensions') exists ifTrue:[
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   385
        jextensions recursiveDirectoryContentsDo:[:each|
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   386
            (self containerSuffixes anySatisfy:[:suffix|each endsWith:suffix]) ifTrue:[
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   387
                (jextensions / each) isRegularFile ifTrue:[
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   388
                    containers add: 'java/extensions/' , each.
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   389
                ].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   390
            ].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   391
        ]
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   392
    ].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   393
    ^ containers
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   394
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   395
    "Created: / 23-03-2009 / 18:52:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   396
    "Modified: / 12-06-2009 / 21:44:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   397
    "Modified: / 24-09-2013 / 12:39:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   398
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   399
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   400
containersToKeep
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   401
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   402
    | containers extensions |
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   403
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   404
    containers := self classes collect:[:cls|self containerNameForClass: cls].
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   405
    (extensions := self extensions) notEmpty ifTrue:[
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   406
        | languages extensionsNonJava extensionsJava |
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   407
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   408
        extensionsNonJava := extensions reject:[:m | m mclass programmingLanguage isJava].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   409
        extensionsJava := extensions select:[:m | m mclass programmingLanguage isJava].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   410
        languages :=  (extensionsNonJava collect:[:each|each programmingLanguage]) asSet.
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   411
        languages do: [:lang| containers add: (self containerNameForExtensions: lang)].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   412
        extensionsJava do:[:m |
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   413
            | container |
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   414
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   415
            container := self containerNameForExtensions: m programmingLanguage javaClass: m mclass.
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   416
            (containers includes: container) ifFalse:[
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   417
                 containers add: container
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   418
            ].
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   419
        ].
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   420
    ].
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   421
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   422
    "Keep all directories"
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   423
    wcroot directoryContents do: [:f|
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   424
        (f ~= '.hg' and: [(wcroot / f) isDirectory]) ifTrue:[
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   425
            containers add: f
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   426
        ].
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   427
    ].
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   428
    "Keep all .st files that are for with other operating systems"
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   429
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   430
    self definition classNamesAndAttributesDo: [:nm :attributes|
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   431
        attributes do:[:attr|
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   432
            (#(win32 unix vms autoload) includes: attr) ifTrue:[
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   433
                containers add: (self containerNameForClassNamed: nm language: SmalltalkLanguage instance)
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   434
            ]
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   435
        ]
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   436
    ].
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   437
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   438
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   439
    ^containers asSet.
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   440
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   441
    "Created: / 12-06-2009 / 21:27:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
348
a9647072025f More support for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   442
    "Modified: / 24-09-2013 / 12:32:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   443
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   444
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   445
!SCMAbstractPackageModel methodsFor:'accessing-hierarchy'!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   446
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   447
children
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   448
    "Returns all my immediate children."
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   449
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   450
    | childNames nameSizePlus1 |
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   451
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   452
    nameSizePlus1 := name size + 1.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   453
    childNames := Smalltalk allProjectIDs select:[:each |
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   454
        (each startsWith: name)
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   455
        and:[ each ~= name
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   456
        and:[ ((each at: nameSizePlus1) == $/ or:[ (each at: nameSizePlus1) == $: ])
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   457
        and:[ (each indexOf: $/ startingAt: nameSizePlus1 + 1) == 0]]]].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   458
    ^ childNames collect:[:each |  self childNamed: (each copyFrom: nameSizePlus1 + 1) ].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   459
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   460
    "
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   461
    (HGPackageModelRegistry packageNamed: 'stx:libscm') children
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   462
    "
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   463
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   464
    "Created: / 19-02-2014 / 23:43:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   465
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   466
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   467
childrenDo: aBlock
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   468
    "Evaluate a block for all immediate children of the receiver.
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   469
     Does NOT recurse."
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   470
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   471
    self children do: aBlock
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   472
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   473
    "Created: / 19-02-2014 / 23:47:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   474
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   475
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   476
parent
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   477
    "Returns the parent model. See class documentation for details on parents"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   478
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   479
    ^parent
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   480
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   481
    "Created: / 01-12-2012 / 17:56:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   482
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   483
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   484
root
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   485
    "Returns the root of this package model hierarchy, i.e., grand-parent which itself has no parent.
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   486
     See class documentation for details on parents"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   487
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   488
    | p |
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   489
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   490
    p := self.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   491
    [ p parent notNil ] whileTrue:[
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   492
        p := p parent.
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   493
    ].
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   494
    ^ p
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   495
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   496
    "Created: / 19-02-2014 / 23:30:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   497
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   498
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   499
siblings
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   500
    "Returns all my siblings"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   501
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   502
    parent notNil
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   503
        ifTrue:[ ^ self parent children copy remove: self; yourself]
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   504
        ifFalse:[ ^ #() ]
379
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   505
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   506
    "
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   507
    (HGPackageModelRegistry packageNamed: 'stx:libscm') siblings
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   508
    (HGPackageModelRegistry packageNamed: 'stx:libscm/common') siblings
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   509
    "
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   510
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   511
    "Created: / 20-02-2014 / 00:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   512
!
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   513
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   514
yourselfAndAllChildrenDo: aBlock
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   515
    "Evaluate a block for receiver and all its children, recursively."
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   516
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   517
    aBlock value: self.
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   518
    self children do:[:each | each yourselfAndAllChildrenDo: aBlock ]
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   519
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   520
    "Created: / 19-02-2014 / 23:49:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   521
! !
8a13fa172b54 Upon commit, update logical revision of all packages that belongs to the same repository...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 352
diff changeset
   522
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   523
!SCMAbstractPackageModel methodsFor:'accessing-private'!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   524
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   525
childNamed: aString
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   526
    "Returns a child name aString. If no such child
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   527
     exist, create one"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   528
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   529
    | child nm|
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   530
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   531
    children at: aString ifPresent:[:child|^child].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   532
    child := self class new.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   533
    nm := (name includes: $:)
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   534
        ifTrue: [name , '/' , aString]
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   535
        ifFalse:[name , ':' , aString].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   536
    child setName: nm repository: repository.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   537
    child setParent: self.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   538
    children at: aString put: child.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   539
    ^child
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   540
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   541
    "Created: / 01-12-2012 / 01:29:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   542
    "Modified: / 01-12-2012 / 18:11:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   543
! !
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   544
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   545
!SCMAbstractPackageModel methodsFor:'file out'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   546
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   547
fileOutClass:cls
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   548
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   549
    |stream|
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   550
305
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   551
    stream := self  containerWriteStreamForClass:cls.
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   552
    [
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   553
        self fileOutClass:cls on:stream
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   554
    ] ensure:[
305
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   555
        stream close
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   556
    ]
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   557
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   558
    "Modified: / 11-06-2009 / 16:18:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   559
    "Created: / 30-12-2009 / 19:04:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
305
890045b4ba69 Rewritten ifNotNil: to notNil ifTrue: in SCMAbstractPackageModel>>#fileOutClass:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 298
diff changeset
   560
    "Modified: / 03-07-2013 / 19:50:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   561
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   562
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   563
fileOutClass:cls on:clsStream
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   564
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   565
"/    cls methodDictionary do:
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   566
"/        [:each|each makeLocalStringSource].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   567
"/
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   568
"/    cls class methodDictionary do:
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   569
"/        [:each|each makeLocalStringSource].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   570
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   571
    self manager
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   572
                fileOutSourceCodeOf:cls
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   573
                                 on:clsStream
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   574
                      withTimeStamp:false
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   575
                     withInitialize:true
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   576
                     withDefinition:true
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   577
                       methodFilter:[:mth | mth package = name ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   578
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   579
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   580
        String streamContents:[:s|
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   581
            (SVN::RepositoryManager repositoryForPackage: Setup::ML package)
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   582
                workingCopy
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   583
                fileOutClass: Setup::ML on: s
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   584
        ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   585
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   586
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   587
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   588
    "Created: / 19-04-2008 / 09:58:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   589
    "Modified: / 11-06-2009 / 16:18:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   590
    "Modified: / 07-07-2011 / 20:21:59 / jv"
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   591
    "Modified: / 14-11-2012 / 01:01:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   592
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   593
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   594
fileOutExtensions: extensionMethods
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   595
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   596
    ^self fileOutExtensions: extensionMethods in: self temporaryWorkingCopyRoot
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   597
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   598
    "Created: / 30-12-2009 / 19:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   599
    "Modified: / 01-12-2012 / 00:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   600
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   601
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   602
fileOutExtensions: extensionMethods in: directory
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   603
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   604
    ProgrammingLanguage all do:[:lang|
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   605
        | stream methods |
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   606
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   607
        methods := extensionMethods select:[:mth|mth programmingLanguage = lang].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   608
        methods notEmpty ifTrue: [
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   609
            ActivityNotification notify:'Filing out extension methods (', lang name , ')'.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   610
            self fileOutExtensions: methods in: directory language: lang
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   611
        ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   612
    ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   613
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   614
    "Created: / 04-09-2012 / 22:56:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   615
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   616
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   617
fileOutExtensions: extensionMethods in: directory language: lang
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   618
    "Given a directory, files out extensions methods in given language.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   619
     Takes care about Java extensions, as they are filed out separately
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   620
     in per-classe .st file in <package dir>/java/extensions/<package>/<java classname>.st"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   621
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   622
    | stream nonJavaExtensionsMethod javaExtensionsMethods |
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   623
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   624
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   625
    stream := self containerWriteStreamForExtensions: lang.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   626
    [
164
754093198918 Bugfix in SCMAbstractPackageModel in extension fileout.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 155
diff changeset
   627
        nonJavaExtensionsMethod := extensionMethods reject:[:each|each mclass theNonMetaclass isJavaClass].
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   628
        self fileOutExtensions: nonJavaExtensionsMethod on: stream language: lang.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   629
    ] ensure:[
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   630
        stream close
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   631
    ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   632
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   633
    javaExtensionsMethods := Dictionary new.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   634
    extensionMethods do:[:mthd|
164
754093198918 Bugfix in SCMAbstractPackageModel in extension fileout.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 155
diff changeset
   635
        mthd mclass theNonMetaclass isJavaClass ifTrue:[
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   636
            (javaExtensionsMethods at: mthd mclass ifAbsentPut:[OrderedCollection new]) add: mthd.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   637
        ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   638
    ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   639
    javaExtensionsMethods keysAndValuesDo:[:cls :methods|
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   640
        [
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   641
            stream := self containerWriteStreamForExtensions: lang javaClass: cls.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   642
            self fileOutExtensions: methods on: stream language: lang.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   643
        ] ensure:[
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   644
            stream close.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   645
        ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   646
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   647
    ]
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   648
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   649
    "Created: / 04-09-2012 / 23:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
164
754093198918 Bugfix in SCMAbstractPackageModel in extension fileout.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 155
diff changeset
   650
    "Modified: / 15-12-2012 / 17:50:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   651
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   652
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   653
fileOutExtensions: extensionMethods on:stream language: language
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   654
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   655
    extensionMethods do:[:each|each makeLocalStringSource].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   656
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   657
    "Special hack for Smalltalk - use SourceCodeManager routine"
168
b7cdb276d892 Bugfix: do not fileout extensionVersion_XXX when filing out Java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   658
    (language isSmalltalk and:[extensionMethods allSatisfy:[:m|m mclass theNonMetaclass isJavaClass not]]) ifTrue:[
44
832a135ebe08 Dependency fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 43
diff changeset
   659
        self manager fileOutSourceCodeExtensions: extensionMethods package: self name on: stream.
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   660
        ^self.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   661
    ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   662
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   663
    "/ Generic fileout "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   664
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   665
    language sourceFileWriterClass new
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   666
        fileOutPackageDefinition: self name on: stream;
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   667
        fileOutMethods: extensionMethods on: stream
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   668
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   669
    "Modified: / 15-06-2009 / 11:55:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   670
    "Created: / 30-12-2009 / 19:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
168
b7cdb276d892 Bugfix: do not fileout extensionVersion_XXX when filing out Java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 164
diff changeset
   671
    "Modified: / 16-12-2012 / 13:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   672
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   673
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   674
!SCMAbstractPackageModel methodsFor:'initialization'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   675
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   676
initialize
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   677
    "Invoked when a new instance is created."
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   678
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   679
    "/ please change as required (and remove this comment)
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   680
    "/ name := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   681
    "/ parent := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   682
    children := Dictionary new.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   683
    "/ repository := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   684
    "/ repositoryRoot := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   685
    "/ wc := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   686
    "/ wcroot := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   687
    "/ classesHasChanged := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   688
    "/ extensionsHasChanged := nil.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   689
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   690
    "/ super initialize.   -- commented since inherited method does nothing
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   691
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   692
    "Modified: / 01-12-2012 / 18:02:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   693
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   694
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   695
setName: aSymbolOrPackageId repository: aRepository
120
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   696
    "Initializes the package. This method also MUST initialize 'repositoryRoot' instvar!!"
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   697
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   698
    ^self subclassResponsibility
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   699
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   700
    "Created: / 01-12-2012 / 17:52:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   701
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   702
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   703
setNameComponents: aCollection repository: aRepository
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   704
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   705
    | nm |
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   706
    aCollection isEmpty ifTrue:[
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   707
        self setName:'' repository: aRepository.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   708
        ^self.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   709
    ].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   710
    aCollection size == 1 ifTrue:[
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   711
        self setName: aCollection first repository: aRepository.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   712
        ^self.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   713
    ].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   714
    nm := aCollection first , ':' , aCollection second.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   715
    aCollection size > 2 ifTrue:[
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   716
        3 to: aCollection size do:[:i|
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   717
            nm := nm , '/' , (aCollection at: i)
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   718
        ].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   719
    ].
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   720
    self setName: nm repository: aRepository.
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   721
    ^self
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   722
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   723
    "Created: / 03-12-2012 / 12:36:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   724
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   725
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   726
setParent: parentModel
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   727
    "Sets the parent model. See class documentation for details on parents models"
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   728
272
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   729
    | topModel |
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   730
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   731
    topModel := parentModel.
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   732
    topModel parent notNil ifTrue:[
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   733
        topModel := topModel parent
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   734
    ].
c175371ac1b8 Bugfix in SCMAbstractPackageModel>>setParent: for deeply nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 271
diff changeset
   735
269
9fe7ec430706 SCMAbstractPackageModel: set repositoryRoot relative to parent when parent is set using #setParent:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 217
diff changeset
   736
    parent := parentModel.
298
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   737
    (parent repositoryRoot = '.') ifTrue:[
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   738
        repositoryRoot := (self name copyFrom: parent name size + 2).
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   739
    ] ifFalse:[
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   740
        repositoryRoot := parent repositoryRoot , '/' , (self name copyFrom: parent name size + 2) .
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   741
    ]
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   742
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   743
    "Created: / 01-12-2012 / 17:54:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
298
311eb292b8d4 Bugfix for SCMAbtractPackageModel#reporsityRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 272
diff changeset
   744
    "Modified: / 21-06-2013 / 23:45:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   745
!
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   746
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   747
setWorkingCopy: aSCMAbstractWorkingCopy
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   748
    wc := aSCMAbstractWorkingCopy.
120
f04c96038be7 Added SCMAbstractPackageModel>>repositoryRoot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 117
diff changeset
   749
    wcroot := wc root / self repositoryRoot
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   750
122
f72225c1f433 Adde parent/child relationship to SCMAbstractPackageModel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   751
    "Created: / 01-12-2012 / 17:53:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   752
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   753
56
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   754
!SCMAbstractPackageModel methodsFor:'private'!
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   755
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   756
commited
101
ac2ed6bc2a14 Commtent in SCMAbstractPackageModel>>commited.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 68
diff changeset
   757
    "Sent by commit task once commited"
56
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   758
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   759
    extensionsHasChanged := false.
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   760
    classesHasChanged := false.
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   761
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   762
    "Created: / 13-08-2009 / 10:23:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   763
    "Modified: / 15-11-2012 / 10:05:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
101
ac2ed6bc2a14 Commtent in SCMAbstractPackageModel>>commited.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 68
diff changeset
   764
    "Modified (comment): / 23-11-2012 / 22:50:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   765
! !
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   766
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   767
!SCMAbstractPackageModel methodsFor:'queries'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   768
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   769
classesHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   770
    classesHasChanged :=
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   771
        (classesHasChanged == true) or:[self computeClassesHasChanged].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   772
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   773
    ^ classesHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   774
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   775
    "Created: / 06-10-2012 / 23:16:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   776
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   777
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   778
extensionsHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   779
    extensionsHasChanged :=
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   780
        (extensionsHasChanged == true) or:[self computeExtensionsHasChanged].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   781
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   782
    ^ extensionsHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   783
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   784
    "Created: / 06-10-2012 / 23:16:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   785
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   786
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   787
!SCMAbstractPackageModel methodsFor:'queries-privacy'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   788
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   789
computeClassesHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   790
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   791
        Answers true iff package classes differs from
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   792
        those listed in ProjectDefinition>>classNamesAndAttributes"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   793
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 269
diff changeset
   794
    | listedClasses realClasses pkgDef |
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   795
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   796
    (pkgDef := self definition) isNil ifTrue:[^true].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   797
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   798
    listedClasses :=    pkgDef compiled_classNames_common ,
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   799
                        pkgDef compiled_classNamesForPlatform ,
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   800
                        pkgDef autoloaded_classNames.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   801
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   802
    realClasses := self classes collect:[:cls | cls fullName ].
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   803
    listedClasses size ~= realClasses size
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   804
        ifTrue:[^ true].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   805
    (realClasses allSatisfy:[:realClass | listedClasses includes:realClass ])
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   806
        ifFalse:[^true].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   807
    ^false
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   808
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   809
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   810
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   811
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   812
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   813
        (CommitTask new package: 'stx:libsvn')
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   814
            computePackageClassesChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   815
        (CommitTask new package: 'cvut:fel/smallruby')
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   816
            computePackageClassesChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   817
        (SVN::RepositoryManager workingCopyForPackage: #'stx:libbasic')
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   818
            computePackageClassesChanged
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   819
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   820
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   821
    "Created: / 06-10-2012 / 23:17:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 269
diff changeset
   822
    "Modified (format): / 19-03-2013 / 10:12:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   823
!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   824
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   825
computeExtensionsHasChanged
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   826
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   827
        Answers true iff package extension method differs from
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   828
        those listed in ProjectDefinition>>extensionMethodNames"
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   829
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 269
diff changeset
   830
    | listedExtensions listedExtensionsDictionary realExtensions |
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   831
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   832
    realExtensions := self  extensions.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   833
    listedExtensions := self definition
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   834
                extensionMethodNames.
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   835
    (listedExtensions size / 2) ~= realExtensions size ifTrue:[
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   836
        ^ true
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   837
    ].
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   838
    listedExtensionsDictionary := Dictionary new.
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   839
    listedExtensions
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   840
        pairWiseDo:[:className :selector |
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   841
            (listedExtensionsDictionary at:className
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   842
                ifAbsentPut:[ OrderedCollection new ]) add:selector
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   843
        ].
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   844
    ^ (realExtensions
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   845
        allSatisfy:[:mth |
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   846
            (listedExtensionsDictionary includesKey:mth mclass name)
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   847
                and:[ (listedExtensionsDictionary at:mth mclass name) includes:mth selector ]
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   848
        ])
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   849
            not
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   850
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   851
    "
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   852
        (CommitTask new package: 'stx:libsvn')
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   853
            packageExtensionsHasChanged"
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   854
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   855
    "Created: / 06-10-2012 / 23:17:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
271
b0f2a22871b6 Care for class removal and superclass/pool change.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 269
diff changeset
   856
    "Modified (format): / 19-03-2013 / 10:12:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   857
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   858
382
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   859
!SCMAbstractPackageModel methodsFor:'testing'!
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   860
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   861
isChildOf: anotherPackageModel
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   862
    ^ anotherPackageModel isParentOf: self.
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   863
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   864
    "Created: / 25-02-2014 / 22:51:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   865
!
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   866
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   867
isParentOf: anotherPackageModel    
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   868
    | anotherName |
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   869
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   870
    anotherName := anotherPackageModel name.
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   871
    ^ (anotherName size) > (name size + 1)
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   872
        and:[ (anotherName startsWith: name)
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   873
            and:[ ':/' includes: (anotherName at: name size + 1) ]].
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   874
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   875
    "Created: / 25-02-2014 / 22:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   876
! !
b661dd389038 Introduced SCMCommonPackageModelGroup.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 380
diff changeset
   877
384
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   878
!SCMAbstractPackageModel methodsFor:'utilities'!
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   879
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   880
, anotherPackageModel
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   881
    ^ SCMCommonPackageModelGroup 
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   882
        with: self
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   883
        with: anotherPackageModel
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   884
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   885
    "Created: / 26-02-2014 / 22:43:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   886
! !
d946e0f0f12a Two more tests for nested packages.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 382
diff changeset
   887
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   888
!SCMAbstractPackageModel methodsFor:'utils'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   889
117
3014c22e2eab Refactoring (part 1): SCMPackageModel>>workingCopy renamed to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   890
ensureTemporaryWorkingCopy
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   891
    "raise an error: must be redefined in concrete subclass(es)"
380
c8b3776ece29 STC bug workaround in SCMAbstractPackageModel>>siblings.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 379
diff changeset
   892
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   893
    ^ self subclassResponsibility
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   894
! !
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   895
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   896
!SCMAbstractPackageModel class methodsFor:'documentation'!
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   897
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   898
version_HG
114
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   899
8b27cb46af9a version_HG changed to return String.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   900
    ^ '$Changeset: <not expanded> $'
53
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   901
!
8043f7b6f41a - More common code refactored
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 44
diff changeset
   902
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   903
version_SVN
56
c183805e5eb1 Few hacks to make Mercurial commits working.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 53
diff changeset
   904
    ^ '§Id::                                                                                                                        §'
43
a331d402de2f Initial commit of common, reusable classes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   905
! !
211
616bc92c0875 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
   906