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