Tools__CompilerWarningToDoListEntry.st
author Claus Gittinger <cg@exept.de>
Mon, 23 Oct 2006 10:58:01 +0200
changeset 7446 008ffff0126e
child 7511 02f65c9a5d2e
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libtool' }"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Tools }"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
ToDoListEntry subclass:#CompilerWarningToDoListEntry
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'checkAction className class selector equalityParameter'
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Interface-Smalltalk-ToDo'
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!CompilerWarningToDoListEntry methodsFor:'accessing'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    ^ className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    "Created: / 22-10-2006 / 01:39:43 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
className:classNameArg selector:selectorArg checkAction:checkActionArg equalityParameter:equalityParameterArg 
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
    checkAction := checkActionArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    className := classNameArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    selector := selectorArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    equalityParameter := equalityParameterArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    "Created: / 22-10-2006 / 01:38:26 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
equalityParameter
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    ^ equalityParameter
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "Created: / 21-10-2006 / 21:57:01 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
methodOrClassName
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    selector isNil ifTrue:[^ className ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
    ^ className,' ',selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    "Created: / 22-10-2006 / 11:05:21 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
problemClass
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    ^ Smalltalk classNamed:className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    "Created: / 21-10-2006 / 21:50:38 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    "Modified: / 22-10-2006 / 01:39:39 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
problemClassName
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    ^ className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "Created: / 22-10-2006 / 01:40:11 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
problemMethod
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    |cls|
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    selector isNil ifTrue:[^ nil].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    cls := self problemClass.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    cls isNil ifTrue:[^ nil].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    ^ cls compiledMethodAt:selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "Created: / 22-10-2006 / 02:42:39 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
problemSelector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    ^ selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "Created: / 21-10-2006 / 21:50:58 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
update:something with:aParameter from:changedObject
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    self revalidate.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    "Created: / 21-10-2006 / 21:28:35 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!CompilerWarningToDoListEntry methodsFor:'duplicate detection'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
sameAs:anotherEntry
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    ^ anotherEntry sameAsCompilerWarningToDoListEntry:self
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    "Created: / 21-10-2006 / 21:38:15 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
sameAsCompilerWarningToDoListEntry:anotherEntry
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    anotherEntry problemClassName = className ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    anotherEntry problemSelector = selector ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    anotherEntry equalityParameter = equalityParameter ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    "Created: / 21-10-2006 / 21:41:57 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    "Modified: / 22-10-2006 / 01:40:03 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!CompilerWarningToDoListEntry methodsFor:'misc'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
browse
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    UserPreferences browserClass 
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
        openInClass:(self problemClass) selector:selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    "Created: / 22-10-2006 / 01:38:11 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!CompilerWarningToDoListEntry methodsFor:'validation'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
checkIfClassIsStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    className notNil ifTrue:[
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
        (Smalltalk classNamed:className) isNil ifTrue:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    "Created: / 21-10-2006 / 21:58:26 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "Modified: / 22-10-2006 / 01:41:53 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
checkIfSelectorIsStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
    selector notNil ifTrue:[
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
        (self problemClass compiledMethodAt:selector) isNil ifTrue:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "Created: / 21-10-2006 / 21:58:44 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    "Modified: / 22-10-2006 / 01:40:40 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
checkIfStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    self checkIfClassIsStillValid ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    self checkIfSelectorIsStillValid ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    ^ (checkAction value:self)
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    "Created: / 21-10-2006 / 21:31:27 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    "Modified: / 21-10-2006 / 23:10:33 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
!CompilerWarningToDoListEntry class methodsFor:'documentation'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
version
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
    ^ '$Header: /cvs/stx/stx/libtool/Tools__CompilerWarningToDoListEntry.st,v 1.1 2006-10-23 08:58:01 cg Exp $'
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !