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