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