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