ProjectProblem.st
author Claus Gittinger <cg@exept.de>
Sat, 26 Apr 2014 11:46:13 +0200
changeset 3550 44a44c0c231c
parent 3549 4f2f1be5b4bc
child 3562 a16bc9e17d35
permissions -rw-r--r--
class: ProjectProblem
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     1
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
     3
	      All Rights Reserved
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     4
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     5
 This software is furnished under a license and may be used
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    10
 hereby transferred.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    11
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    13
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    14
Object subclass:#ProjectProblem
3547
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
    15
	instanceVariableNames:'package fixes allProblems'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    16
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    17
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    18
	category:'System-Support-Projects'
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    19
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    20
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    21
ProjectProblem subclass:#ClassProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    22
	instanceVariableNames:'className'
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    23
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    24
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    25
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    26
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    27
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    28
ProjectProblem::ClassProblem subclass:#InconsistentProjectDefinition
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    29
	instanceVariableNames:''
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    30
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    31
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    32
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    33
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    34
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    35
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedBeforeItsPool
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    36
	instanceVariableNames:'poolName'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    37
	classVariableNames:''
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    38
	poolDictionaries:''
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    39
	privateIn:ProjectProblem
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    40
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    41
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    42
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedBeforeItsSuperclass
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    43
	instanceVariableNames:'superClassName'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    44
	classVariableNames:''
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    45
	poolDictionaries:''
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    46
	privateIn:ProjectProblem
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    47
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    48
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    49
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedButDoesNotExist
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    50
	instanceVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    51
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    52
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    53
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    54
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    55
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    56
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedMultipleTimes
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    57
	instanceVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    58
	classVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    59
	poolDictionaries:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    60
	privateIn:ProjectProblem
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    61
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    62
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    63
ProjectProblem::InconsistentProjectDefinition subclass:#ClassNotListed
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    64
	instanceVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    65
	classVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    66
	poolDictionaries:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    67
	privateIn:ProjectProblem
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    68
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    69
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    70
ProjectProblem::InconsistentProjectDefinition subclass:#ClassIsCompiledButSuperclassIsAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    71
	instanceVariableNames:''
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    72
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    73
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    74
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    75
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    76
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    77
ProjectProblem::ClassProblem subclass:#ClassUsesPoolProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    78
	instanceVariableNames:'poolName'
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    79
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    80
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    81
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    82
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    83
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    84
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolButItIsNotASharedPool
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    85
	instanceVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    86
	classVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    87
	poolDictionaries:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    88
	privateIn:ProjectProblem
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    89
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    90
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    91
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolInNamespaceButNamespaceIsNotDefined
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    92
	instanceVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    93
	classVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    94
	poolDictionaries:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    95
	privateIn:ProjectProblem
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    96
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    97
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    98
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolButItDoesNotExist
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    99
	instanceVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   100
	classVariableNames:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   101
	poolDictionaries:''
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   102
	privateIn:ProjectProblem
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   103
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   104
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   105
ProjectProblem::ClassProblem subclass:#MethodProblem
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   106
	instanceVariableNames:'selector'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   107
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   108
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   109
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   110
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   111
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   112
ProjectProblem::MethodProblem subclass:#ExtensionMethodListedButInDifferentPackage
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   113
	instanceVariableNames:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   114
	classVariableNames:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   115
	poolDictionaries:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   116
	privateIn:ProjectProblem
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   117
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   118
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   119
ProjectProblem::MethodProblem subclass:#ExtensionMethodNotListed
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   120
	instanceVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   121
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   122
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   123
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   124
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   125
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   126
ProjectProblem::MethodProblem subclass:#ExtensionMethodsClassDoesNotExist
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   127
	instanceVariableNames:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   128
	classVariableNames:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   129
	poolDictionaries:''
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   130
	privateIn:ProjectProblem
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   131
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   132
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   133
ProjectProblem::InconsistentProjectDefinition subclass:#ClassIsCompiledButSuperclassProjectDefinitionIsMissing
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   134
	instanceVariableNames:''
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   135
	classVariableNames:''
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   136
	poolDictionaries:''
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   137
	privateIn:ProjectProblem
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   138
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   139
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   140
ProjectProblem::MethodProblem subclass:#MethodCompilabilityIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   141
	instanceVariableNames:'errors warnings'
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   142
	classVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   143
	poolDictionaries:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   144
	privateIn:ProjectProblem
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   145
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   146
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   147
Object subclass:#Error
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   148
	instanceVariableNames:'message startPosition endPosition'
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   149
	classVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   150
	poolDictionaries:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   151
	privateIn:ProjectProblem::MethodCompilabilityIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   152
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   153
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   154
Object subclass:#Warning
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   155
	instanceVariableNames:'message startPosition endPosition'
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   156
	classVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   157
	poolDictionaries:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   158
	privateIn:ProjectProblem::MethodCompilabilityIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   159
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   160
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   161
ProjectProblem::MethodProblem subclass:#MethodInNoPackage
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   162
	instanceVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   163
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   164
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   165
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   166
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   167
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   168
ProjectProblem::MethodProblem subclass:#ExtensionMethodListedButDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   169
	instanceVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   170
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   171
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   172
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   173
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   174
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   175
ProjectProblem::MethodProblem subclass:#MethodSourceCorrupted
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   176
	instanceVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   177
	classVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   178
	poolDictionaries:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   179
	privateIn:ProjectProblem
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   180
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   181
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   182
ProjectProblem::MethodProblem subclass:#MethodSourceNotAvailable
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   183
	instanceVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   184
	classVariableNames:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   185
	poolDictionaries:''
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   186
	privateIn:ProjectProblem
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   187
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   188
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   189
ProjectProblem subclass:#ProjectDefinitionDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   190
	instanceVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   191
	classVariableNames:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   192
	poolDictionaries:''
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   193
	privateIn:ProjectProblem
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   194
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   195
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   196
!ProjectProblem class methodsFor:'documentation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   197
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   198
copyright
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   199
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   200
 COPYRIGHT (c) 2006 by eXept Software AG
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   201
	      All Rights Reserved
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   202
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   203
 This software is furnished under a license and may be used
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   204
 only in accordance with the terms of that license and with the
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   205
 inclusion of the above copyright notice.   This software may not
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   206
 be provided or otherwise made available to, or used by, any
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   207
 other person.  No title to or ownership of the software is
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   208
 hereby transferred.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   209
"
3430
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   210
!
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   211
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   212
documentation
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   213
"
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   214
    I represent a problem as detect by the project consistency checker,
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   215
    which is optionally executed before committing a package to a repository.
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   216
    Typically, I find inconsistencies, uncompilable methods or missing prerequisites,
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   217
    which might lead to trouble when the package is later to be compiled to a dll via stc.
3431
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   218
3547
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   219
    [instance variables:]
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   220
        package         - the package in question
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   221
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   222
        fixes           - a collection of possible fixes
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   223
                          (to be shown in the HTML view of the problem browser)
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   224
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   225
        allProblems     - the collection of problems I am part of
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   226
                          (only needed to be able to do the 
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   227
                           'fix other problems of this kind' operation,
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   228
                           for example in the MethodOnNoPackage problem.)
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   229
3431
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   230
    [see also:]
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   231
        ProjectChecker ProjectDefinition
3430
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   232
"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   233
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   234
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   235
!ProjectProblem class methodsFor:'instance creation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   236
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   237
newClassIsCompiledButSuperclassIsAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   238
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   239
    ^ClassIsCompiledButSuperclassIsAutoloaded new
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   240
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   241
    "Created: / 20-09-2013 / 11:18:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   242
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   243
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   244
newClassIsCompiledButSuperclassProjectDefinitionIsMissing
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   245
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   246
    ^ClassIsCompiledButSuperclassProjectDefinitionIsMissing new
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   247
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   248
    "Created: / 05-10-2013 / 12:43:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   249
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   250
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   251
newClassListedBeforeItsPool
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   252
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   253
    ^ClassListedBeforeItsPool new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   254
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   255
    "Created: / 13-09-2012 / 17:13:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   256
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   257
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   258
newClassListedBeforeItsSuperclass
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   259
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   260
    ^ClassListedBeforeItsSuperclass new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   261
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   262
    "Created: / 13-09-2012 / 17:13:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   263
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   264
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   265
newClassListedButDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   266
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   267
    ^ClassListedButDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   268
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   269
    "Created: / 23-02-2012 / 13:18:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   270
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   271
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   272
newClassListedMultipleTimes
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   273
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   274
    ^ClassListedMultipleTimes new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   275
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   276
    "Created: / 13-09-2012 / 17:40:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   277
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   278
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   279
newClassNotListed
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   280
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   281
    ^ClassNotListed new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   282
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   283
    "Created: / 23-02-2012 / 13:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   284
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   285
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   286
newClassUsesPoolButItDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   287
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   288
    ^ClassUsesPoolButItDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   289
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   290
    "Created: / 23-02-2012 / 13:37:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   291
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   292
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   293
newClassUsesPoolButItIsNotASharedPool
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   294
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   295
    ^ClassUsesPoolButItIsNotASharedPool new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   296
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   297
    "Created: / 23-02-2012 / 13:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   298
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   299
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   300
newClassUsesPoolInNamespaceButNamespaceIsNotDefined
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   301
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   302
    ^ClassUsesPoolInNamespaceButNamespaceIsNotDefined new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   303
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   304
    "Created: / 13-09-2012 / 16:40:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   305
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   306
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   307
newExtensionMethodListedButDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   308
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   309
    ^ExtensionMethodListedButDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   310
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   311
    "Created: / 23-02-2012 / 14:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   312
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   313
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   314
newExtensionMethodListedButInDifferentPackage
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   315
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   316
    ^ExtensionMethodListedButInDifferentPackage new
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   317
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   318
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   319
newExtensionMethodNotListed
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   320
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   321
    ^ExtensionMethodNotListed new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   322
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   323
    "Created: / 23-02-2012 / 14:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   324
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   325
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   326
newExtensionMethodsClassDoesNotExist
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   327
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   328
    ^ExtensionMethodsClassDoesNotExist new
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   329
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   330
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   331
newMethodCompilabilityIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   332
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   333
    ^MethodCompilabilityIssue new
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   334
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   335
    "Created: / 11-04-2012 / 15:34:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   336
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   337
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   338
newMethodInNoPackage
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   339
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   340
    ^MethodInNoPackage new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   341
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   342
    "Created: / 23-02-2012 / 14:27:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   343
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   344
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   345
newMethodSourceCorrupted
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   346
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   347
    ^MethodSourceCorrupted new
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   348
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   349
    "Created: / 11-04-2012 / 12:35:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   350
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   351
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   352
newMethodSourceNotAvailable
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   353
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   354
    ^MethodSourceNotAvailable new
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   355
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   356
    "Created: / 11-04-2012 / 12:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   357
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   358
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   359
newProjectDefinitionDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   360
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   361
    ^ProjectDefinitionDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   362
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   363
    "Created: / 23-02-2012 / 13:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   364
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   365
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   366
!ProjectProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   367
3547
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   368
allProblems:something
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   369
    allProblems := something.
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   370
!
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   371
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   372
countOtherProblemsOfThisKind
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   373
    ^ allProblems 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   374
        count:
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   375
            [:problem | 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   376
                problem class == self class
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   377
                and:[ problem ~~ self
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   378
                and:[ problem alreadyFixed not]]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   379
            ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   380
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   381
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   382
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   383
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   384
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   385
    ^self subclassResponsibility
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   386
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   387
    "Created: / 23-02-2012 / 13:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   388
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   389
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   390
descriptionAndFixes
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   391
    "Return a (HTML) describing the problem plus possible fixes."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   392
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   393
    |descriptionText fixes|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   394
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   395
    (self alreadyFixed) ifTrue:[^ 'Already fixed.'].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   396
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   397
    descriptionText := self description.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   398
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   399
    "/ don't use cached fixes (after a fix, the problem may return an empty fix list)
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   400
    fixes := self fixes.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   401
    fixes isEmpty ifTrue:[ ^ descriptionText ].            
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   402
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   403
    ^String streamContents:[:html |
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   404
        html nextPutAll: descriptionText.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   405
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   406
        html nextPutAll: '<br><br>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   407
        fixes size == 1 ifTrue:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   408
            html nextPutLine: 'Possible fix:'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   409
        ] ifFalse:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   410
            html nextPutLine: 'Possible fixes:'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   411
        ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   412
        html nextPutLine:'<ul>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   413
        fixes withIndexDo:[:fix :index|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   414
            html
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   415
                nextPutAll:'<li><a action="doit: self application doFix: ';
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   416
                nextPutAll: index printString;
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   417
                nextPutAll:'">';
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   418
                nextPutAll: fix first;
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   419
                nextPutAll:'</a></li>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   420
        ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   421
        html nextPutLine:'</ul>'.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   422
    ].
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   423
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   424
    "Created: / 26-07-2012 / 09:46:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   425
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   426
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   427
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   428
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   429
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   430
    ^self subclassResponsibility
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   431
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   432
    "Created: / 23-02-2012 / 13:03:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   433
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   434
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   435
package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   436
    ^ package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   437
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   438
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   439
package:aSymbol
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   440
    package := aSymbol asSymbol.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   441
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   442
    "Modified: / 11-04-2012 / 16:00:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   443
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   444
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   445
packageDefinitionClass
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   446
    ^ProjectDefinition definitionClassForPackage: package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   447
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   448
    "Created: / 23-02-2012 / 13:26:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   449
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   450
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   451
severity
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   452
    "Return a severity - one of #error, #warning, #info"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   453
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   454
    ^#warning "/by default
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   455
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   456
    "Created: / 23-02-2012 / 13:09:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   457
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   458
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   459
!ProjectProblem methodsFor:'fixing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   460
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   461
allUnfixedProblemsOfMyKindDo:aBlock
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   462
    allProblems do:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   463
        (p class == self class and:[ p alreadyFixed not]) ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   464
            aBlock value:p
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   465
        ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   466
    ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   467
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   468
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   469
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   470
    ^ false
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   471
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   472
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   473
doFix: index
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   474
    self initializeFixes.
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   475
    ^ (fixes at: index) second value
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   476
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   477
    "Created: / 26-07-2012 / 10:07:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   478
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   479
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   480
fixes
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   481
    "Return (possibly empty) list of actions that
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   482
     the user may take to fix/investigate the problem.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   483
     Returned value should be list of pairs (label, action block).
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   484
     To be overriden in subclasses.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   485
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   486
     The list should be an array of pairs ( fix label , fix block ).
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   487
     Fix block should return true, if the fix was successful,
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   488
     false otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   489
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   490
     ^#()
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   491
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   492
    "Created: / 26-07-2012 / 09:46:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   493
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   494
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   495
!ProjectProblem methodsFor:'initialization'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   496
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   497
initializeFixes
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   498
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   499
    fixes isNil ifTrue:[
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   500
	fixes := self fixes
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   501
    ].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   502
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   503
    "/ super initialize.   -- commented since inherited method does nothing
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   504
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   505
    "Created: / 26-07-2012 / 09:54:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   506
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   507
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   508
!ProjectProblem methodsFor:'printing & storing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   509
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   510
displayOn:aGCOrStream
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   511
    |lbl|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   512
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   513
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   514
    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   515
    (aGCOrStream isStream) ifFalse:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   516
        ^ super displayOn:aGCOrStream
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   517
    ].
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   518
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   519
    lbl := self label.
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   520
    self alreadyFixed ifTrue:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   521
        aGCOrStream
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   522
            nextPutAll:lbl string;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   523
            emphasis:#italic;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   524
            nextPutAll:' (already fixed)'
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   525
    ] ifFalse:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   526
        aGCOrStream nextPutAll:lbl.
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   527
    ].
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   528
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   529
    "Created: / 14-02-2012 / 17:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   530
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   531
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   532
printOn:aStream
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   533
    "append a printed representation if the receiver to the argument, aStream"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   534
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   535
    super printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   536
    aStream nextPut:$(.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   537
    self severity printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   538
    aStream nextPut:$:; space.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   539
    self label printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   540
    aStream nextPut:$).
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   541
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   542
    "Modified: / 23-02-2012 / 16:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   543
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   544
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   545
!ProjectProblem methodsFor:'utilities-HTML'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   546
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   547
linkToClass: classOrclassName
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   548
    | className |
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   549
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   550
    className := classOrclassName isBehavior
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   551
		    ifTrue: [classOrclassName storeString]
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   552
		    ifFalse:[classOrclassName].
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   553
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   554
    ^'<A INFO="Click to browse class" ACTION="doit: UserPreferences current systemBrowserClass openInClass:%1"><CODE>%1</CODE></A>'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   555
	bindWith: className
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   556
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   557
    "Created: / 23-02-2012 / 13:44:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   558
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   559
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   560
linkToClass: classOrclassName selector: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   561
    ^self linkToClass: classOrclassName selector:  selector omitClassName: false
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   562
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   563
    "Created: / 23-02-2012 / 13:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   564
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   565
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   566
linkToClass: classOrclassName selector: selector omitClassName: omitClassName
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   567
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   568
    | className |
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   569
    className := classOrclassName isBehavior
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   570
		    ifTrue: [classOrclassName name]
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   571
		    ifFalse:[classOrclassName].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   572
    ^omitClassName ifTrue:[
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   573
	'<A INFO="Click to browse method" ACTION="doit: UserPreferences current systemBrowserClass openInClass:%1 selector: %2"><CODE>#%3</CODE></A>'
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   574
	    bindWith: className
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   575
		with: selector storeString
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   576
		with: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   577
    ] ifFalse:[
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   578
	'<A INFO="Click to browse method" ACTION="doit: UserPreferences current systemBrowserClass openInClass:%1 selector: %2"><CODE>%1>>%3</CODE></A>'
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   579
	    bindWith: className
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   580
		with: selector storeString
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   581
		with: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   582
    ]
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   583
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   584
    "Created: / 26-07-2012 / 10:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   585
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   586
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   587
!ProjectProblem::ClassProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   588
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   589
className
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   590
    ^ className
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   591
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   592
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   593
className:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   594
    className := something.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   595
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   596
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   597
klass
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   598
    "Return the class which is subject of the problem"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   599
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   600
"/    | class |
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   601
"/
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   602
"/    (className endsWith: ' class') ifTrue:[
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   603
"/        class := Smalltalk at: (className copyTo: className size - 6) asSymbol.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   604
"/        class := class theMetaclass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   605
"/    ] ifFalse:[
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   606
"/        class := Smalltalk at: className  asSymbol
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   607
"/    ].
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   608
"/    ^class
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   609
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   610
    "/ the above is exactly:
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
   611
    ^ Smalltalk classNamed:className
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   612
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   613
    "Created: / 26-07-2012 / 10:21:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   614
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   615
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   616
!ProjectProblem::ClassProblem methodsFor:'fixing'!
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   617
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   618
doUpdateAllProjectDefinitions
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   619
    "full update the project definition class;
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   620
     will do a rescan to add all missing items"
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   621
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   622
    | def |
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   623
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   624
    def := self packageDefinitionClass.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   625
    def isNil ifTrue:[ ^ false ].
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   626
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   627
    def
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   628
        updateMethodsCodeUsingCompiler:Compiler 
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   629
        ignoreOldDefinition:false.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   630
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   631
    UserNotification notify: ('Project definitions updated. Do not forget to check in build support files!!').
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   632
    ^true
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   633
! !
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   634
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   635
!ProjectProblem::InconsistentProjectDefinition methodsFor:'fixing'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   636
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   637
fixes
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   638
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   639
    ^Array
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   640
        with: (Array with: 'Full update of the project definitions (rescan)' with: [ self doUpdateAllProjectDefinitions ])
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   641
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   642
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   643
!ProjectProblem::ClassListedBeforeItsPool methodsFor:'accessing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   644
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   645
poolName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   646
    ^ poolName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   647
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   648
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   649
poolName:something
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   650
    poolName := something.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   651
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   652
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   653
!ProjectProblem::ClassListedBeforeItsPool methodsFor:'accessing-description'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   654
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   655
description
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   656
    "Return a (HTML) describing the problem."
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   657
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   658
    ^
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   659
'Class %2 is listed in project definition (%1) before one of its pools (%3).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   660
<br>Such class will fail to compile (if the package is being stc-compiled)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   661
and load (if the package is being loaded from source).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   662
<br>Make sure class (%3) is listed before (%2).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   663
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   664
'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   665
bindWith: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   666
    with: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   667
    with: (self linkToClass: poolName)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   668
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   669
    "Modified: / 13-09-2012 / 18:29:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   670
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   671
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   672
label
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   673
    "Return the label (possibly instance if a Text) shortly describing the problem"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   674
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   675
    ^'Class %1 listed in project definition "%2" before one of its pools' bindWith: className allBold with:self packageDefinitionClass
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   676
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   677
    "Modified: / 13-09-2012 / 17:36:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   678
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   679
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   680
!ProjectProblem::ClassListedBeforeItsSuperclass methodsFor:'accessing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   681
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   682
superClassName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   683
    ^ superClassName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   684
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   685
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   686
superClassName:something
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   687
    superClassName := something.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   688
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   689
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   690
!ProjectProblem::ClassListedBeforeItsSuperclass methodsFor:'accessing-description'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   691
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   692
description
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   693
    "Return a (HTML) describing the problem."
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   694
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   695
    ^
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   696
'Class %2 is listed in project definition (%1) before its superclass %3.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   697
<br>The package can be stc-compiled 
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   698
(because the generated makefile compiles in correct order)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   699
but the class may fail to load from source.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   700
<br>Make sure %3 is listed before %2.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   701
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   702
'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   703
bindWith: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   704
    with: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   705
    with: (self linkToClass: superClassName)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   706
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   707
    "Modified: / 13-09-2012 / 18:29:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   708
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   709
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   710
label
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   711
    "Return the label (possibly instance if a Text) shortly describing the problem"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   712
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   713
    ^'Class %1 listed in project definition "%2" before its superclass' bindWith: className allBold with:self packageDefinitionClass 
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   714
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   715
    "Modified: / 13-09-2012 / 17:36:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   716
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   717
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   718
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'accessing'!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   719
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   720
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   721
    "Return a severity - one of #error, #warning, #info"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   722
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   723
    ^#error
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   724
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   725
    "Created: / 11-04-2012 / 12:48:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   726
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   727
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   728
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   729
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   730
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   731
    "Return a (HTML) describing the problem."
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   732
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   733
    |msg|
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   734
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   735
    self klass isNil ifTrue:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   736
        msg :=
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   737
'Class "<code>%1</code>" is listed in the project definition but not present in the system.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   738
<br>
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   739
You should either create it or remove it from %2.'
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   740
    ] ifFalse:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   741
        msg :=
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   742
'Class "<code>%1</code>" is listed in the project definition but is located in another package ("',self klass package,'")
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   743
<br>
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   744
You should either move the class to this package it or remove it from the list in %2.'
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   745
    ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   746
    ^ msg
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   747
        bindWith: className 
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   748
        with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes)
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   749
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   750
    "Modified: / 28-02-2012 / 22:23:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   751
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   752
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   753
label
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   754
    ^'Missing class: ', className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   755
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   756
    "Modified: / 23-02-2012 / 13:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   757
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   758
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   759
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'fixing'!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   760
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   761
alreadyFixed
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   762
    | cls def |
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   763
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   764
    def := self packageDefinitionClass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   765
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   766
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   767
    (def compiled_classNames includes:className) ifFalse:[^ true].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   768
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   769
    cls := self klass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   770
    cls isNil ifTrue:[^ false].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   771
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   772
    ^ cls package = self package 
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   773
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   774
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   775
doMoveClassToPackage
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   776
    | cls |
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   777
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   778
    cls := self klass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   779
    cls isNil ifTrue:[ ^ false ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   780
    cls package:(cls package).
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   781
    UserNotification notify: ('Do not forget to check in the class into the appropriate repository!!').
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   782
    ^true
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   783
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   784
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   785
doRemoveClassFromProjectDefinition
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   786
    | def cls |
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   787
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   788
    def := self packageDefinitionClass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   789
    def isNil ifTrue:[ ^ false ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   790
    cls := self klass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   791
    cls isNil ifTrue:[ ^ false ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   792
    def excludeClasses:{ cls } usingCompiler:nil.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   793
    UserNotification notify: ('Class removed from project. Do not forget to check in build support files!!' bindWith: className).
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   794
    ^true
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   795
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   796
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   797
fixes
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   798
    |allFixes|
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   799
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   800
    allFixes := OrderedCollection new.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   801
    allFixes add:{
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   802
                    'Remove from project definition' .
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   803
                    [ self doRemoveClassFromProjectDefinition ]
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   804
                 }.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   805
    self klass notNil ifTrue:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   806
        allFixes add:{
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   807
                        'Move class to package' .
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   808
                        [ self doMoveClassToPackage ]
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   809
                     }.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   810
    ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   811
    allFixes addAll:super fixes.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   812
    ^ allFixes
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   813
! !
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   814
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   815
!ProjectProblem::ClassListedMultipleTimes methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   816
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   817
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   818
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   819
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   820
    ^
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   821
'A class %1 is listed more than once in %2.
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   822
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   823
Such package will fail to compile, as linker will complain
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
   824
about multiple definitions of the same symbols. Make sure each
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   825
class is listed only once.
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   826
'
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   827
    bindWith: (self linkToClass: className)
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
   828
	with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   829
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   830
    "Modified: / 13-09-2012 / 17:40:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   831
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   832
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   833
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   834
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   835
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   836
    ^'Class %1 listed multiple times in project definition "%2"' bindWith: className allBold with:self packageDefinitionClass
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   837
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   838
    "Modified: / 23-02-2012 / 13:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   839
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   840
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   841
!ProjectProblem::ClassNotListed methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   842
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   843
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   844
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   845
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   846
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
   847
'Class %1 is not listed in project definition (%2).
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
   848
<br>The class won''t be compiled and - if some other class dependents on it - the whole package will fail to compile
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   849
at all.'
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   850
bindWith: (self linkToClass: className)
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   851
    with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   852
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   853
    "Modified: / 26-07-2012 / 10:27:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   854
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   855
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   856
label
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   857
    "Return the label (possibly instance if a Text) shortly describing the problem"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   858
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   859
    ^'Class %1 not listed in project definition "%2"' bindWith: className allBold with:self packageDefinitionClass 
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   860
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   861
    "Modified: / 23-02-2012 / 13:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   862
! !
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   863
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   864
!ProjectProblem::ClassNotListed methodsFor:'fixing'!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   865
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   866
alreadyFixed
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   867
    | cls def |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   868
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   869
    def := self packageDefinitionClass.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   870
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   871
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   872
    cls := self klass.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   873
    "/ One may "fix" the problem by actually removing the class. 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   874
    "/ In this case, consider problem as "fixed".
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   875
    cls isNil ifTrue:[^ true].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   876
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   877
    ^ (def compiled_classNames includes:className) 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   878
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   879
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   880
doIncludeAllClassesInProject
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   881
    "Include all unlisted subject classes in project definition. 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   882
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   883
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   884
    |any|
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   885
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   886
    any := false.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   887
    self allUnfixedProblemsOfMyKindDo:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   888
        any := any | (p doIncludeInProjectAsAutoloaded:false)
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   889
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   890
    ^ any
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   891
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   892
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   893
doIncludeInProject
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   894
    "Include subject class in project definition. Return false if
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   895
     fix fails, true otherwise"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   896
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   897
    ^ self doIncludeInProjectAsAutoloaded:false
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   898
!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   899
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   900
doIncludeInProjectAsAutoloaded
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   901
    "Include subject class in project definition. Return false if
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   902
     fix fails, true otherwise"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   903
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   904
    ^ self doIncludeInProjectAsAutoloaded:true
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   905
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   906
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   907
doIncludeInProjectAsAutoloaded:asAutoloaded
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   908
    "Include subject class in project definition. Return false if
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   909
     fix fails, true otherwise"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   910
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   911
    | def cls |
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   912
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   913
    def := self packageDefinitionClass.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   914
    def isNil ifTrue:[ ^ false ].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   915
    cls := self klass.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   916
    cls isNil ifTrue:[ ^ false ].
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   917
    asAutoloaded ifTrue:[
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   918
        def makeClassesAutoloaded:(Array with: cls) usingCompiler: nil.
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   919
    ] ifFalse:[
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   920
        def includeClasses:(Array with: cls) usingCompiler: nil.
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   921
    ].
3144
896359337971 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3143
diff changeset
   922
    UserNotification notify: ('Class added. Do not forget to check in build support files!!' bindWith: className).
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   923
    ^true
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   924
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   925
    "Created: / 26-07-2012 / 10:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   926
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   927
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   928
fixes
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   929
    |numOther fixes|
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   930
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   931
    numOther := self countOtherProblemsOfThisKind.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   932
    fixes := OrderedCollection new.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   933
    fixes add:{ 'Add class to project (as compiled)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   934
                [ self doIncludeInProject ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   935
              }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   936
    numOther > 0 ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   937
        fixes add:{ 'Add all listed classes to project (as compiled)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   938
                    [ self doIncludeAllClassesInProject ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   939
                  }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   940
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   941
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   942
    fixes 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   943
        add:{ 'Add class to project as autoloaded' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   944
                [ self doIncludeInProjectAsAutoloaded ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   945
            };
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   946
        add:{ 'Full update of the project definitions (rescan)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   947
                [ self doUpdateAllProjectDefinitions ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   948
            }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   949
    ^ fixes
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   950
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   951
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   952
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   953
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   954
!ProjectProblem::ClassIsCompiledButSuperclassIsAutoloaded methodsFor:'accessing'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   955
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   956
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   957
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   958
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   959
    ^
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   960
'Class %1 is compiled (i.e., not autoloaded) but its superclass %1 is
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   961
is autoloaded. Such class won''t compile because of missing superclass .H/.STH file.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   962
To fix it, either make %1 autoloaded ot make %2 compiled.'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   963
bindWith: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   964
    with: (self linkToClass: (Smalltalk at: className) superclass name)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   965
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   966
    "Modified: / 20-09-2013 / 11:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   967
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   968
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   969
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   970
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   971
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   972
    ^ 'Class ', className , ' is compiled but its superclass is autoloaded'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   973
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   974
    "Modified: / 20-09-2013 / 11:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   975
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   976
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   977
!ProjectProblem::ClassIsCompiledButSuperclassIsAutoloaded methodsFor:'fixing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   978
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   979
doIncludeInProjectAsAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   980
    "Include subject class in project definition. Return false if
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   981
     fix fails, true otherwise"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   982
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   983
    ^ self doIncludeInProjectAsAutoloaded:true
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   984
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   985
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   986
doIncludeInProjectAsAutoloaded:asAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   987
    "Include subject class in project definition. Return false if
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   988
     fix fails, true otherwise"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   989
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   990
    | def cls |
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   991
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   992
    def := self packageDefinitionClass.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   993
    def isNil ifTrue:[ ^ false ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   994
    cls := self klass.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   995
    cls isNil ifTrue:[ ^ false ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   996
    asAutoloaded ifTrue:[
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   997
        def makeClassesAutoloaded:(Array with: cls) usingCompiler: nil.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   998
    ] ifFalse:[
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   999
        def includeClasses:(Array with: cls) usingCompiler: nil.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1000
    ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1001
    UserNotification notify: ('Class added. Do not forget to check in build support files!!' bindWith: className).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1002
    ^true
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1003
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1004
    "Created: / 26-07-2012 / 10:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1005
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1006
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1007
fixes
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1008
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1009
    ^Array
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1010
        with: (Array with: 'Add class ', className , ' to project as autoloaded' with: [ self doIncludeInProjectAsAutoloaded ])
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1011
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1012
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1013
    "Modified: / 20-09-2013 / 11:06:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1014
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1015
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1016
!ProjectProblem::ClassUsesPoolProblem methodsFor:'accessing'!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1017
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1018
poolName
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1019
    ^ poolName
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1020
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1021
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1022
poolName:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1023
    poolName := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1024
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1025
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1026
!ProjectProblem::ClassUsesPoolButItIsNotASharedPool methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1027
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1028
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1029
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1030
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1031
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1032
'A class %1 uses pool %2 but it does not exist.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1033
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1034
The pool should be removed from the class definition;
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1035
otherwise the package won''t compile due to a missing class.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1036
    bindWith: (self linkToClass: className)
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1037
	with: (self linkToClass: poolName)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1038
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1039
    "Modified: / 23-02-2012 / 13:48:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1040
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1041
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1042
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1043
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1044
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1045
    ^'Used pool %1 is not a SharedPool' bindWith: className allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1046
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1047
    "Modified: / 23-02-2012 / 13:40:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1048
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1049
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1050
!ProjectProblem::ClassUsesPoolInNamespaceButNamespaceIsNotDefined methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1051
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1052
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1053
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1054
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1055
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1056
'A class %1 uses pool %2 from same namespace as the class,
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1057
but the namespace is not explicitly named in the shared pools definition.
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1058
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1059
Due to a bug in stc, such code will fail to compile. A pool definition
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1060
must contain a fully qualified class name including namespace.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1061
    bindWith: (self linkToClass: className)
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1062
	with: (self linkToClass: poolName)
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1063
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1064
    "Modified: / 13-09-2012 / 16:32:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1065
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1066
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1067
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1068
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1069
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1070
    ^ 'Missing namespace prefix in shared pools definition of %1' bindWith: className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1071
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1072
    "Modified: / 13-09-2012 / 16:28:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1073
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1074
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1075
!ProjectProblem::ClassUsesPoolButItDoesNotExist methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1076
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1077
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1078
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1079
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1080
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1081
'A class %1 uses pool %2 but it does not exist.
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1082
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1083
The pool should be removed from the class definition;
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1084
otherwise the package won''t compile due to a missing class.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1085
    bindWith: (self linkToClass: className) with: poolName
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1086
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1087
    "Modified: / 13-09-2012 / 16:24:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1088
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1089
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1090
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1091
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1092
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1093
    ^'Missing pool: ' , className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1094
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1095
    "Modified: / 23-02-2012 / 13:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1096
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1097
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1098
!ProjectProblem::MethodProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1099
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1100
className:something selector: sel
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1101
    className := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1102
    selector :=  sel
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1103
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1104
    "Created: / 23-02-2012 / 14:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1105
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1106
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1107
method
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1108
    | class |
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1109
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1110
    class := self klass.
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1111
    class isNil ifTrue:[ ^ nil ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1112
    ^class compiledMethodAt: selector
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1113
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1114
    "Created: / 26-07-2012 / 10:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1115
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1116
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1117
method: method
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1118
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1119
    self className: method mclass name selector: method selector
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1120
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1121
    "Created: / 11-04-2012 / 12:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1122
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1123
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1124
selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1125
    ^ selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1126
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1127
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1128
selector:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1129
    selector := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1130
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1131
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1132
!ProjectProblem::MethodProblem methodsFor:'fixes'!
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1133
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1134
doRemoveMethodFromExtensionsList
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1135
    "update the extension method info in the project definition.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1136
     Return false if fix fails, true otherwise"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1137
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1138
    | def mthd |
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1139
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1140
    def := self packageDefinitionClass.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1141
    def isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1142
    mthd := self method.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1143
    mthd isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1144
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1145
    def excludeMethods:(Array with:mthd) usingCompiler:nil.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1146
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1147
    ^true
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1148
!
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1149
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1150
doRemoveNamedMethodFromExtensionsList
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1151
    "update the extension method info in the project definition.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1152
     Return false if fix fails, true otherwise"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1153
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1154
    | def |
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1155
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1156
    def := self packageDefinitionClass.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1157
    def isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1158
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1159
    def excludeMethodFor:selector inClassNamed:className usingCompiler:nil.    
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1160
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1161
    ^true
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1162
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1163
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1164
!ProjectProblem::MethodProblem methodsFor:'utilities-HTML'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1165
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1166
linkToMethod
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1167
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1168
    ^self linkToClass: className selector: selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1169
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1170
    "Created: / 23-02-2012 / 14:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1171
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1172
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1173
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'accessing-description'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1174
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1175
description
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1176
    "Return a (HTML) describing the problem."
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1177
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1178
    |mthd text|
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1179
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1180
    (mthd := self method) isNil ifTrue:[ ^ 'Method removed.' ].
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1181
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1182
    mthd package = mthd mclass package ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1183
        text :=
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1184
'Method %1 listed in %3 but is in its classes package (%4).
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1185
Maybe the method used to be an extension but is now a proper part of the class.
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1186
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1187
It is recommended to remove the method name from the extensions list (%3).'
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1188
    ] ifFalse:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1189
        text :=
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1190
'Method %1 listed in %3 but is in a different package (%4).
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1191
The package will compile but may fail to (auto)load from sources.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1192
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1193
It is recommended to either remove the method name from the extensions list (%3) 
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1194
or move the method it to the correct package.'
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1195
    ].
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1196
    ^ text
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1197
        bindWith: (self linkToClass: (Smalltalk classNamed: className) selector: selector) "className"        
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1198
            with: selector
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1199
            with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1200
            with: mthd package
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1201
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1202
    "Modified: / 23-02-2012 / 15:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1203
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1204
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1205
label
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1206
    "Return the label (possibly instance if a Text) shortly describing the problem"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1207
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1208
    |mthd text|
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1209
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1210
    text := 'Extension method %1 >> %2 listed but in different package'.
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1211
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1212
    (mthd := self method) notNil ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1213
        mthd package = mthd mclass package ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1214
            text := 'Extension method %1 >> %2 listed but in classes package' 
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1215
        ]
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1216
    ].
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1217
    ^ text
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1218
        bindWith: className allBold 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1219
        with: selector allBold
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1220
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1221
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1222
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1223
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1224
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'fixes'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1225
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1226
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1227
    |mthd|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1228
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1229
    (self packageDefinitionClass extensionMethods includes:self method) ifFalse:[^ true].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1230
    ^ ((mthd := self method) notNil 
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1231
        and:[ mthd package = package ])
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1232
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1233
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1234
doMoveMethodToProject
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1235
    self method package:package
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1236
! !
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1237
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1238
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'fixing'!
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1239
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1240
fixes
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1241
    |mthd|
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1242
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1243
    (mthd := self method) isNil ifTrue:[ ^ #() ].
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1244
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1245
"/    mthd package = mthd mclass package ifTrue:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1246
"/        ^Array
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1247
"/            with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveMethodFromExtensionsList ])    
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1248
"/    ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1249
"/
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1250
    ^Array
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1251
        with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveMethodFromExtensionsList ])    
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1252
        with: (Array with: 'Move method into package' with: [ self doMoveMethodToProject ])
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1253
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1254
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1255
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1256
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1257
!ProjectProblem::ExtensionMethodNotListed methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1258
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1259
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1260
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1261
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1262
^'Method %1 is not listed in %2.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1263
<br>It should either be listed in the project definition, or moved to the owning classes package'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1264
    bindWith: (self linkToMethod)
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1265
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1266
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1267
    "Modified: / 23-02-2012 / 14:34:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1268
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1269
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1270
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1271
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1272
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1273
    ^'Extension method %1 >> %2 not listed in project definition "%3"' bindWith: className allBold with: selector allBold with:self packageDefinitionClass
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1274
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1275
    "Modified: / 23-02-2012 / 14:22:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1276
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1277
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1278
!ProjectProblem::ExtensionMethodNotListed methodsFor:'fixing'!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1279
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1280
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1281
    ^ (self packageDefinitionClass extensionMethods includes:self method)        
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1282
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1283
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1284
doMoveToClassesPackage
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1285
    "move the extension method to the owning classes package.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1286
     Return false if fix fails, true otherwise"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1287
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1288
    | cls mthd |
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1289
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1290
    cls := self klass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1291
    cls isNil ifTrue:[ ^ false ].
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1292
    mthd := cls compiledMethodAt:selector.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1293
    mthd package:(cls package).
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1294
    UserNotification notify: ('Do not forget to check in the method''s package (or class) ("%1")!!' bindWith:cls package).
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1295
    ^true
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1296
!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1297
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1298
doUpdateExtensionMethodsInProject
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1299
    "update the extension method info in the project definition.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1300
     Return false if fix fails, true otherwise"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1301
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1302
    | def mthd |
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1303
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1304
    def := self packageDefinitionClass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1305
    def isNil ifTrue:[ ^ false ].
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1306
    mthd := self method.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1307
    mthd isNil ifTrue:[ ^ false ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1308
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1309
    def includeMethods:(Array with:mthd) usingCompiler:nil.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1310
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1311
    ^true
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1312
!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1313
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1314
fixes
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1315
    ^Array
3200
ef12ced16ea9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3198
diff changeset
  1316
        with: (Array with: 'Add method to project' with: [ self doUpdateExtensionMethodsInProject ])
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1317
        with: (Array with: 'Move to classes package' with: [ self doMoveToClassesPackage ])
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1318
        with: (Array with: 'Full update of the project definitions (rescan)' with: [ self doUpdateAllProjectDefinitions ])
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1319
! !
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1320
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1321
!ProjectProblem::ExtensionMethodsClassDoesNotExist methodsFor:'accessing-description'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1322
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1323
description
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1324
    "Return a (HTML) describing the problem."
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1325
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1326
^'Method %1 >> %2 listed in %3 but class does not exist.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1327
The package will compile but may fail to (auto)load from sources.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1328
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1329
It is recommended to remove the method from the list (%3).'
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1330
    bindWith: className 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1331
        with: selector
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1332
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1333
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1334
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1335
label
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1336
    "Return the label (possibly instance if a Text) shortly describing the problem"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1337
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1338
    ^'Extension method %1 >> %2 listed but class not existing' 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1339
        bindWith: className allBold 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1340
        with: selector allBold
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1341
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1342
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1343
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1344
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1345
!ProjectProblem::ExtensionMethodsClassDoesNotExist methodsFor:'fixing'!
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1346
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1347
fixes
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1348
    ^Array
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1349
        with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveNamedMethodFromExtensionsList ])    
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1350
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1351
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1352
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1353
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1354
!ProjectProblem::ClassIsCompiledButSuperclassProjectDefinitionIsMissing methodsFor:'accessing'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1355
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1356
description
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1357
    "Return a (HTML) describing the problem."
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1358
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1359
    ^
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1360
'Class %1 is compiled (i.e., not autoloaded) but its superclass''s package 
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1361
definition is missing. Such class won''t compile because superclass''s package
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1362
will be likely missing.'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1363
bindWith: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1364
    with: (self linkToClass: (Smalltalk at: className) superclass name)
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1365
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1366
    "Modified: / 05-10-2013 / 12:43:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1367
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1368
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1369
label
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1370
    "Return the label (possibly instance if a Text) shortly describing the problem"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1371
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1372
    ^ 'Class ', className , ' is compiled but its superclass''s package definition is missing'
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1373
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1374
    "Modified: / 05-10-2013 / 12:41:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1375
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1376
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1377
!ProjectProblem::MethodCompilabilityIssue methodsFor:'accessing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1378
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1379
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1380
    ^ errors notNil ifTrue:[#error] ifFalse:[#warning]
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1381
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1382
    "Modified: / 11-04-2012 / 15:40:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1383
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1384
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1385
!ProjectProblem::MethodCompilabilityIssue methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1386
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1387
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1388
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1389
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1390
    | issuePrinter |
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1391
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1392
    issuePrinter := 
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1393
        [:stream :issue|
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1394
            stream nextPutAll:'<li>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1395
            issue descriptionOn: stream.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1396
            stream nextPutAll:'</li>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1397
            stream cr.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1398
        ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1399
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1400
    ^ String streamContents:[:s|
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1401
        s
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1402
            nextPutAll: 'The following problems have been found in ';
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1403
            nextPutAll: self linkToMethod;
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1404
            nextPutAll: ':'; cr;
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1405
            nextPutAll: '<ul>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1406
        errors ? #() do:[:issue|issuePrinter value: s value: issue].
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1407
        warnings ? #() do:[:issue|issuePrinter value: s value: issue].
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1408
        s
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1409
            nextPutAll: '</ul>'.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1410
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1411
        errors notNil ifTrue:[
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1412
            s nextPutAll:
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1413
'STC won''t compile such code, therefore you must fix it before committing'
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1414
        ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1415
    ]
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1416
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1417
    "Modified: / 11-04-2012 / 15:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1418
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1419
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1420
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1421
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1422
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1423
    ^ (errors notNil 
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1424
        ifTrue:[ 'Uncompilable method %1 >> %2' ]
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1425
        ifFalse:[ 'Warnings for method %1 >> %2' ]) bindWith: className allBold with: selector allBold
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1426
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1427
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1428
    "Modified: / 11-04-2012 / 16:04:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1429
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1430
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1431
!ProjectProblem::MethodCompilabilityIssue methodsFor:'error handling'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1432
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1433
addError:aMessage from: position to: endPos
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1434
    errors isNil ifTrue:[ errors := OrderedCollection new].
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1435
    errors add: (Error message: aMessage from: position to: endPos)
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1436
!
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1437
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1438
addWarning:aMessage from: position to: endPos
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1439
    warnings isNil ifTrue:[ warnings := OrderedCollection new].
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1440
    warnings add: (Warning message: aMessage from: position to: endPos)
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1441
!
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1442
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1443
correctableError:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1444
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1445
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1446
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1447
    self error:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1448
    ^ false. "/ no correction
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1449
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1450
    "Created: / 30-07-1999 / 18:11:15 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1451
    "Modified: / 02-11-2010 / 12:58:54 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1452
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1453
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1454
correctableSelectorWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1455
    "warning notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1456
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1457
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1458
    self warning:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1459
    ^ false. "/ no correction
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1460
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1461
    "Modified: / 02-11-2010 / 12:59:04 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1462
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1463
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1464
correctableWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1465
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1466
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1467
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1468
    self warning:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1469
    ^ false
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1470
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1471
    "Created: / 02-11-2010 / 13:29:40 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1472
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1473
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1474
error:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1475
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1476
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1477
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1478
    "Argh!!!!!!!! If its an ignorable error, why signal error!!!!!! Bad design,
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1479
    even worse workaround. Sigh."
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1480
    (thisContext findNextContextWithSelector:#ignorableParseError: or:nil or:nil) notNil
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1481
    "/ thisContext sender sender sender sender selector == #ignorableParseError:
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1482
        ifTrue:[ ^ self ].
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1483
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1484
    self addError:aMessage from: position to: endPos
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1485
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1486
    "Created: / 30-07-1999 / 18:10:30 / cg"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1487
    "Modified: / 10-09-2012 / 11:32:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1488
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1489
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1490
unusedVariableWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1491
    "warning notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1492
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1493
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1494
    ^ self warning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1495
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1496
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1497
warning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1498
    "warning notification during fileIn - ignore it.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1499
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1500
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1501
"/    No, do not show warnings now, too many false positives
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1502
"/    warnings isNil ifTrue:[ warnings := OrderedCollection new].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1503
"/    warnings   add: (Warning message: aMessage from: position to: endPos).
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1504
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1505
    "Created: / 30-07-1999 / 18:11:05 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1506
    "Modified (comment): / 12-04-2012 / 18:19:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1507
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1508
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1509
!ProjectProblem::MethodCompilabilityIssue methodsFor:'queries'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1510
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1511
hasIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1512
    ^ (errors ? warnings) notNil
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1513
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1514
    "Created: / 11-04-2012 / 15:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1515
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1516
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1517
!ProjectProblem::MethodCompilabilityIssue::Error class methodsFor:'instance creation'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1518
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1519
message: message from: startPosition to: endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1520
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1521
    ^self new
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1522
	message: message;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1523
	startPosition: startPosition;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1524
	endPosition: endPosition;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1525
	yourself.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1526
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1527
    "Created: / 11-04-2012 / 15:38:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1528
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1529
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1530
!ProjectProblem::MethodCompilabilityIssue::Error methodsFor:'accessing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1531
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1532
endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1533
    ^ endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1534
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1535
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1536
endPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1537
    endPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1538
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1539
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1540
message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1541
    ^ message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1542
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1543
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1544
message:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1545
    message := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1546
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1547
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1548
startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1549
    ^ startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1550
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1551
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1552
startPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1553
    startPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1554
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1555
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1556
!ProjectProblem::MethodCompilabilityIssue::Error methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1557
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1558
descriptionOn: stream
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1559
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1560
    stream nextPutAll: message; space; nextPutAll:'(error)'
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1561
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1562
    "Created: / 11-04-2012 / 15:52:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1563
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1564
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1565
!ProjectProblem::MethodCompilabilityIssue::Warning class methodsFor:'instance creation'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1566
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1567
message: message from: startPosition to: endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1568
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1569
    ^self new
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1570
	message: message;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1571
	startPosition: startPosition;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1572
	endPosition: endPosition;
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1573
	yourself.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1574
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1575
    "Created: / 11-04-2012 / 15:38:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1576
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1577
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1578
!ProjectProblem::MethodCompilabilityIssue::Warning methodsFor:'accessing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1579
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1580
endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1581
    ^ endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1582
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1583
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1584
endPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1585
    endPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1586
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1587
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1588
message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1589
    ^ message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1590
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1591
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1592
message:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1593
    message := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1594
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1595
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1596
startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1597
    ^ startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1598
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1599
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1600
startPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1601
    startPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1602
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1603
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1604
!ProjectProblem::MethodCompilabilityIssue::Warning methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1605
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1606
descriptionOn: stream
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1607
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1608
    stream nextPutAll: message; space"/; nextPutAll:'(warning)'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1609
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1610
    "Created: / 11-04-2012 / 15:52:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1611
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1612
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1613
!ProjectProblem::MethodInNoPackage methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1614
3217
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  1615
alreadyFixed
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1616
    | m |
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1617
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1618
    "/ One may "fix" the problem by actually removing the method. 
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1619
    "/ In this case, consider problem as "fixed".
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1620
    m :=  self method.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1621
    ^ m isNil or:[self method package ~= PackageId noProjectID]
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1622
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1623
    "Modified (format): / 19-12-2013 / 15:38:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3217
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  1624
!
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  1625
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1626
description
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1627
    "Return a (HTML) describing the problem."
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1628
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1629
    ^
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1630
'Method %1 does not belong to any package. Such methods
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1631
are not committed and will be lost when you restart/recompile.
3342
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  1632
Especially, it will not be included when you generate a compiled class library.
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  1633
However, it will be kept in the changes file, so it is not completely lost.
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  1634
The method should be moved to some package, %2 maybe?'
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1635
    bindWith: (self linkToMethod)
3342
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  1636
        with: package
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1637
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1638
    "Modified: / 23-02-2012 / 14:21:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1639
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1640
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1641
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1642
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1643
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1644
    ^'Unpackaged method %1 >> %2' bindWith: className allBold with: selector allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1645
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1646
    "Modified: / 23-02-2012 / 14:19:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1647
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1648
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1649
!ProjectProblem::MethodInNoPackage methodsFor:'fixing'!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1650
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1651
doMoveAllListedMethodsToPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1652
    "move all listed methods to the package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1653
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1654
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1655
    | m any |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1656
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1657
    any := false.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1658
    self allUnfixedProblemsOfMyKindDo:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1659
        m := p method.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1660
        m notNil ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1661
            m package: package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1662
            any := true.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1663
        ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1664
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1665
    ^ any
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1666
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1667
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1668
doMoveMethodToPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1669
    "move the method to the package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1670
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1671
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1672
    | m |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1673
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1674
    m := self method.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1675
    m notNil ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1676
        m package: package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1677
        ^ true
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1678
    ] ifFalse:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1679
        ^ false
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1680
    ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1681
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1682
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1683
fixes
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1684
    |moveThisToPackage moveAllToTheirPackage|
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1685
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1686
    moveThisToPackage :=
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1687
        {
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1688
            ('Move method to package ', package) .
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1689
            [ self doMoveMethodToPackage ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1690
        }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1691
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1692
    self countOtherProblemsOfThisKind > 0 ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1693
        moveAllToTheirPackage :=
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1694
            {
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1695
                ('Move all listed unpackaged methods to package ', package) .
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1696
                [ self doMoveAllListedMethodsToPackage ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1697
            }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1698
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1699
        ^ {
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1700
            moveThisToPackage .
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1701
            moveAllToTheirPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1702
          }
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1703
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1704
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1705
    ^ {
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1706
        moveThisToPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1707
      }
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1708
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1709
    "Created: / 26-07-2012 / 09:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1710
! !
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1711
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1712
!ProjectProblem::ExtensionMethodListedButDoesNotExist methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1713
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1714
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1715
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1716
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1717
^'Method %1 listed in %3 but does not exist.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1718
The package will compile but may fail to (auto)load from sources.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1719
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1720
It is recommended to remove the method from the list (%3).'
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1721
    bindWith: (self linkToClass: (Smalltalk classNamed: className) selector: selector) "className"        
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1722
        with: selector
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1723
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1724
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1725
    "Modified: / 23-02-2012 / 15:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1726
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1727
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1728
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1729
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1730
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1731
    ^'Extension method %1 >> %2 listed but not existing' bindWith: className allBold with: selector allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1732
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1733
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1734
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1735
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1736
!ProjectProblem::ExtensionMethodListedButDoesNotExist methodsFor:'fixing'!
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1737
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1738
fixes
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1739
    ^Array
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1740
        with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveNamedMethodFromExtensionsList ])    
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1741
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1742
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1743
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1744
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1745
!ProjectProblem::MethodSourceCorrupted methodsFor:'accessing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1746
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1747
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1748
    "Return a severity - one of #error, #warning, #info"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1749
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1750
    ^#error
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1751
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1752
    "Created: / 11-04-2012 / 12:47:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1753
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1754
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1755
!ProjectProblem::MethodSourceCorrupted methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1756
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1757
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1758
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1759
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1760
    ^
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1761
'Source code for %1 is <b>corrupted</b>. This is likely because
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1762
the binary class version does not match the source file. This may happen,
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1763
for instance, if you compile a class library and then edit the ".st" file,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1764
or you have checked out from the SCM into the file system over the existing source code,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1765
from which the class was compiled.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1766
<P>Be very careful with checkin or fileOut (do NOT save over any existing file), 
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1767
and check the results for currupt source code,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1768
<P>Sometimes, you can fix this by disabling the "Use Local Source" in the SCM manager''s settings
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1769
dialog. If that does not help, it is recommended to leave ST/X, restore the old source or compile a system
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1770
based on the current source, restart ST/X, reapply the changes via the Changebrowser and commit then.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1771
    bindWith: (self linkToMethod)
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1772
        with: package
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1773
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1774
    "Modified: / 11-04-2012 / 12:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1775
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1776
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1777
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1778
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1779
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1780
    ^ 'Corrupted source code for %1 >> %2' bindWith: className allBold with: selector allBold
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1781
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1782
    "Modified: / 11-04-2012 / 12:42:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1783
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1784
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1785
!ProjectProblem::MethodSourceNotAvailable methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1786
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1787
severity
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1788
    "Return a severity - one of #error, #warning, #info"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1789
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1790
    ^#error
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1791
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1792
    "Created: / 11-04-2012 / 12:47:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1793
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1794
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1795
!ProjectProblem::MethodSourceNotAvailable methodsFor:'accessing-description'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1796
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1797
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1798
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1799
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1800
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1801
'Source code for %1 is not available. Check your package path
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1802
and/or source code management settings.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1803
'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1804
    bindWith: (self linkToMethod)
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1805
	with: package
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1806
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1807
    "Modified: / 11-04-2012 / 12:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1808
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1809
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1810
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1811
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1812
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1813
    ^ 'Unavailable source code for %1 >> %2' bindWith: className allBold with: selector allBold
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1814
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1815
    "Modified: / 11-04-2012 / 12:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1816
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1817
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1818
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1819
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1820
severity
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1821
    "Return a severity - one of #error, #warning, #info"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1822
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1823
    ^#error
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1824
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1825
    "Created: / 11-04-2012 / 12:48:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1826
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1827
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1828
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1829
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1830
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1831
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1832
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1833
    package = 'stx' ifTrue:[
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1834
        ^
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1835
'Move your code to another package.
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1836
<br>The package name "stx" is reserveed for exept''s ST/X development.'
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1837
    ].
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1838
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1839
    ^
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1840
'A project definition class for package "%1" does not exist.
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1841
<br>Project definition classes keep the meta information of a package,
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1842
such as contents and build parameters.
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1843
You <b>must</b> create it, otherwise package management won''t work,
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1844
and the package cannot be compiled to a binary dll.'
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1845
    bindWith: package
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1846
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1847
    "Modified: / 23-02-2012 / 13:29:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1848
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1849
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1850
label
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1851
    ^'Project definition class for "%1" does not exist' bindWith: package
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1852
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1853
    "Modified: / 23-02-2012 / 13:21:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1854
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1855
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1856
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'fixing'!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1857
3225
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1858
alreadyFixed
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1859
    ^ (ProjectDefinition definitionClassForPackage:package) notNil        
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1860
!
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  1861
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1862
doCreateAs:whatType
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1863
    |prjDef|
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1864
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1865
    prjDef := ProjectDefinition
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1866
        definitionClassForPackage:package
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1867
        projectType: whatType
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1868
        createIfAbsent:true.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1869
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1870
    prjDef
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1871
        updateMethodsCodeUsingCompiler:Compiler 
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  1872
        ignoreOldDefinition:true
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1873
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1874
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1875
doCreateAsGUIApplication
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1876
    self doCreateAs:ProjectDefinition guiApplicationType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1877
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1878
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1879
doCreateAsLibrary
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1880
    self doCreateAs:ProjectDefinition libraryType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1881
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1882
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1883
doCreateAsNonGUIApplication
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1884
    self doCreateAs:ProjectDefinition nonGuiApplicationType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1885
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1886
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1887
fixes
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1888
    package = 'stx' ifTrue:[ ^ #() ].
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1889
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1890
    ^ Array
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1891
	with: (Array with:'Create as Library'             with:[ self doCreateAsLibrary ]               )
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1892
	with: (Array with:'Create as GUI Application'     with:[ self doCreateAsGUIApplication ]        )
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1893
	with: (Array with:'Create as non-GUI Application' with:[ self doCreateAsNonGUIApplication ]     )
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1894
! !
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  1895
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1896
!ProjectProblem class methodsFor:'documentation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1897
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1898
version
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
  1899
    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectProblem.st,v 1.31 2014-04-26 09:46:13 cg Exp $'
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1900
!
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1901
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1902
version_CVS
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
  1903
    ^ '$Header: /cvs/stx/stx/libbasic3/ProjectProblem.st,v 1.31 2014-04-26 09:46:13 cg Exp $'
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1904
!
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  1905
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1906
version_SVN
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
  1907
    ^ '$Id: ProjectProblem.st,v 1.31 2014-04-26 09:46:13 cg Exp $'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1908
! !
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1909