PO refactoring: get rid of name instvar.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 20 May 2014 11:50:16 +0100
changeset 230 2c12395f8108
parent 229 c82a22d2153d
child 231 d934396fce8e
PO refactoring: get rid of name instvar. Name instvar was ambiguous and confusin, expecially when there's a `label` instvar too. `name` instvar was removed and subclasses now must refefine #label and few others.
SmallSense__ClassPO.st
SmallSense__ConstantPO.st
SmallSense__JavaImportPO.st
SmallSense__MethodKeywordRestPO.st
SmallSense__MethodPO.st
SmallSense__PO.st
SmallSense__SnippetPO.st
SmallSense__VariablePO.st
smallsense.rc
--- a/SmallSense__ClassPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__ClassPO.st	Tue May 20 11:50:16 2014 +0100
@@ -33,28 +33,27 @@
     "Modified: / 20-05-2014 / 10:05:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-name
-
-    | nm |
+label
+    label isNil ifTrue:[
+        showPrefix ifTrue:[
+            label := klass name.
+            (context notNil and:[klass isJavaClass]) ifTrue:[
+                context language isJava ifTrue:[
+                    label := klass javaName
+                ] ifFalse:[
+                    context language isSmalltalk ifTrue:[
+                       label := 'JAVA ' , (klass  binaryName copyReplaceAll: $/ with: Character space)
+                     ]
+                ]
+            ].
+        ] ifFalse:[
+            label := klass nameWithoutPrefix.
+        ].
+    ].
 
-    showPrefix ifTrue:[
-        nm := klass name.
-        (context notNil and:[klass isJavaClass]) ifTrue:[
-            context language isJava ifTrue:[
-                nm := klass javaName
-            ] ifFalse:[
-                context language isSmalltalk ifTrue:[
-                   nm := 'JAVA ' , (klass  binaryName copyReplaceAll: $/ with: Character space)
-                 ]
-            ]
-        ].
-    ] ifFalse:[
-        nm := klass nameWithoutPrefix.
-    ].
-    ^nm
+    ^label
 
-    "Created: / 26-08-2013 / 10:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 17-12-2013 / 22:16:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 20-05-2014 / 11:29:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showPrefix
@@ -88,11 +87,11 @@
     ^ (klass isJavaClass and:[language isSmalltalk]) ifTrue:[
         'JAVA ', (klass binaryName copyReplaceAll: $/ with: Character space)
     ] ifFalse:[
-        super stringToCompleteForLanguage: language
+        self label
     ].
 
     "Created: / 03-10-2013 / 16:42:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-10-2013 / 02:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:41:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassPO methodsFor:'converting'!
@@ -136,13 +135,6 @@
     ]
 
     "Created: / 18-09-2013 / 00:17:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-displayString
-    ^ self name
-
-    "Created: / 20-04-2012 / 18:19:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 26-08-2013 / 10:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassPO methodsFor:'initialization'!
--- a/SmallSense__ConstantPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__ConstantPO.st	Tue May 20 11:50:16 2014 +0100
@@ -10,6 +10,25 @@
 !
 
 
+!ConstantPO methodsFor:'accessing'!
+
+label
+    "Return a text to be displayed. The label may be cached
+     `label` instvar."
+
+    ^ '???'
+
+    "Created: / 20-05-2014 / 11:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
+    "Answers a string to complete"
+
+    ^ '???'
+
+    "Created: / 20-05-2014 / 11:32:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ConstantPO methodsFor:'testing'!
 
 isSmallSenseConstantPO
--- a/SmallSense__JavaImportPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__JavaImportPO.st	Tue May 20 11:50:16 2014 +0100
@@ -57,9 +57,8 @@
 
 import:aString
     import := aString.
-    name := aString
 
-    "Modified: / 20-05-2014 / 10:10:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:43:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 klass
@@ -70,6 +69,12 @@
     klass := something.
 !
 
+label
+    ^ import
+
+    "Created: / 20-05-2014 / 11:31:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 stringAlreadyWritten
     "Answers a string already written in the textview"    
 
--- a/SmallSense__MethodKeywordRestPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__MethodKeywordRestPO.st	Tue May 20 11:50:16 2014 +0100
@@ -72,7 +72,6 @@
 
 initializeWithClasses: anArray"Of Classes" selector: aSymbol prefix: aString 
     selector := aSymbol.
-    name := aSymbol.
     classes := anArray.
     keywords := (aSymbol copyFrom: aString size + 1)
 
--- a/SmallSense__MethodPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__MethodPO.st	Tue May 20 11:50:16 2014 +0100
@@ -15,10 +15,11 @@
 cursorColumnAfterComplete
 
     | idx |
-    idx := name indexOf: $:.
-    ^idx == 0 ifTrue:[name size + 1] ifFalse:[idx + 1].
+    idx := self label indexOf: $:.
+    ^idx == 0 ifTrue:[self label size + 1] ifFalse:[idx + 1].
 
     "Created: / 05-04-2011 / 17:08:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 cursorColumnAfterCompleteForLanguage: language
@@ -116,10 +117,10 @@
 
 initializeWithClasses: anArray"Of Classes" selector: aSymbol 
     selector := aSymbol.
-    name := aSymbol.
     classes := anArray
 
     "Created: / 20-05-2014 / 10:32:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:34:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !MethodPO methodsFor:'testing'!
--- a/SmallSense__PO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__PO.st	Tue May 20 11:50:16 2014 +0100
@@ -3,7 +3,7 @@
 "{ NameSpace: SmallSense }"
 
 HierarchicalItem subclass:#PO
-	instanceVariableNames:'icon label name relevance context'
+	instanceVariableNames:'icon label relevance context'
 	classVariableNames:'IconWidth'
 	poolDictionaries:''
 	category:'SmallSense-Core-Interface-PO'
@@ -90,20 +90,30 @@
 !
 
 label
+    "Return a text to be displayed. The label may be cached
+     `label` instvar."
 
-    label isNil ifTrue:[label := self name].
-    ^label
+    ^ self subclassResponsibility
 
     "Created: / 07-04-2011 / 09:55:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 03-10-2013 / 16:28:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:30:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 name
-    ^ name
+    <resource: #obsolete>
+
+    self obsoleteMethodWarning.
+    ^ self label
+
+    "Modified: / 20-05-2014 / 11:36:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-name:something
-    name := something.
+name:aString
+    <resource: #obsolete>
+
+    self shouldNeverBeSent
+
+    "Modified: / 20-05-2014 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 relevance
@@ -148,10 +158,10 @@
 stringToCompleteForLanguage: aProgrammingLanguage
     "Answers a string to complete"
 
-    ^ self name
+    ^ self subclassResponsibility
 
     "Created: / 02-10-2013 / 02:32:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 31-03-2014 / 23:07:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 subject
@@ -222,6 +232,13 @@
 
     "Created: / 24-07-2013 / 00:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 18-09-2013 / 00:13:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+displayString
+    ^ self label
+
+    "Created: / 20-04-2012 / 18:19:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:34:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PO methodsFor:'printing & storing'!
@@ -231,10 +248,10 @@
 
     super printOn:aStream.
     aStream nextPut:$(.
-    name printOn:aStream.
+    self label.
     aStream nextPut:$).
 
-    "Modified: / 04-04-2011 / 12:02:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PO methodsFor:'queries'!
--- a/SmallSense__SnippetPO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__SnippetPO.st	Tue May 20 11:50:16 2014 +0100
@@ -12,11 +12,28 @@
 
 !SnippetPO methodsFor:'accessing'!
 
+label
+    "Return a text to be displayed. The label may be cached
+     `label` instvar."
+
+    ^ value
+
+    "Created: / 20-05-2014 / 11:30:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
+    "Answers a string to complete"
+
+    ^ value
+
+    "Created: / 20-05-2014 / 11:33:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 value:aString
     value := aString.
-    name := aString
 
     "Created: / 20-05-2014 / 10:08:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 20-05-2014 / 11:34:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SnippetPO methodsFor:'testing'!
--- a/SmallSense__VariablePO.st	Tue May 20 11:01:39 2014 +0100
+++ b/SmallSense__VariablePO.st	Tue May 20 11:50:16 2014 +0100
@@ -3,7 +3,7 @@
 "{ NameSpace: SmallSense }"
 
 PO subclass:#VariablePO
-	instanceVariableNames:'class type'
+	instanceVariableNames:'class type name'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SmallSense-Core-Interface-PO'
@@ -55,13 +55,30 @@
     "Created: / 06-04-2011 / 16:51:42 / Jakub <zelenja7@fel.cvut.cz>"
 !
 
-stringToCompleteForLanguage: language
+label
+    ^ name
+
+    "Created: / 20-05-2014 / 11:30:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name
+    ^ name
 
+    "Created: / 20-05-2014 / 11:38:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name: aString
+    name := aString
+
+    "Created: / 20-05-2014 / 11:37:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
     "Answers a string to complete"
 
-    ^name "/, ' '
+    ^ name
 
-    "Created: / 31-03-2014 / 23:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 20-05-2014 / 11:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 type:something
--- a/smallsense.rc	Tue May 20 11:01:39 2014 +0100
+++ b/smallsense.rc	Tue May 20 11:50:16 2014 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Tue, 20 May 2014 09:55:57 GMT\0"
+      VALUE "ProductDate", "Tue, 20 May 2014 10:44:04 GMT\0"
     END
 
   END