Browse Source

Announce ClassMoved when changing a class package

Nicolas Petton 12 years ago
parent
commit
2ae4049e0f
3 changed files with 37 additions and 15 deletions
  1. 14 5
      js/Kernel-Classes.deploy.js
  2. 17 8
      js/Kernel-Classes.js
  3. 6 2
      st/Kernel-Classes.st

+ 14 - 5
js/Kernel-Classes.deploy.js

@@ -736,9 +736,11 @@ selector: "package",
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return self.pkg;
-return self}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.Class)})},
-messageSends: []}),
+var $1;
+$1=_st(self)._basicAt_("pkg");
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.Class)})},
+messageSends: ["basicAt:"]}),
 smalltalk.Class);
 
 smalltalk.addMethod(
@@ -746,10 +748,17 @@ smalltalk.method({
 selector: "package:",
 fn: function (aPackage){
 var self=this;
+function $ClassMoved(){return smalltalk.ClassMoved||(typeof ClassMoved=="undefined"?nil:ClassMoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
-self.pkg = aPackage;
+var $1,$2;
+_st(self)._basicAt_put_("pkg",aPackage);
+$1=_st($ClassMoved())._new();
+_st($1)._theClass_(self);
+$2=_st($1)._yourself();
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.Class)})},
-messageSends: []}),
+messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"]}),
 smalltalk.Class);
 
 smalltalk.addMethod(

+ 17 - 8
js/Kernel-Classes.js

@@ -964,11 +964,13 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return self.pkg;
-return self}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.Class)})},
+var $1;
+$1=_st(self)._basicAt_("pkg");
+return $1;
+}, function($ctx1) {$ctx1.fill(self,"package",{},smalltalk.Class)})},
 args: [],
-source: "package\x0a\x09<return self.pkg>",
-messageSends: [],
+source: "package\x0a\x09^ self basicAt: 'pkg'",
+messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.Class);
@@ -979,13 +981,20 @@ selector: "package:",
 category: 'accessing',
 fn: function (aPackage){
 var self=this;
+function $ClassMoved(){return smalltalk.ClassMoved||(typeof ClassMoved=="undefined"?nil:ClassMoved)}
+function $SystemAnnouncer(){return smalltalk.SystemAnnouncer||(typeof SystemAnnouncer=="undefined"?nil:SystemAnnouncer)}
 return smalltalk.withContext(function($ctx1) { 
-self.pkg = aPackage;
+var $1,$2;
+_st(self)._basicAt_put_("pkg",aPackage);
+$1=_st($ClassMoved())._new();
+_st($1)._theClass_(self);
+$2=_st($1)._yourself();
+_st(_st($SystemAnnouncer())._current())._announce_($2);
 return self}, function($ctx1) {$ctx1.fill(self,"package:",{aPackage:aPackage},smalltalk.Class)})},
 args: ["aPackage"],
-source: "package: aPackage\x0a\x09<self.pkg = aPackage>",
-messageSends: [],
-referencedClasses: []
+source: "package: aPackage\x0a\x09self basicAt: 'pkg' put: aPackage.\x0a\x09\x0a\x09SystemAnnouncer current announce: (ClassMoved new\x0a\x09\x09theClass: self;\x0a\x09\x09yourself)",
+messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself", "current"],
+referencedClasses: ["ClassMoved", "SystemAnnouncer"]
 }),
 smalltalk.Class);
 

+ 6 - 2
st/Kernel-Classes.st

@@ -317,11 +317,15 @@ definition
 !
 
 package
-	<return self.pkg>
+	^ self basicAt: 'pkg'
 !
 
 package: aPackage
-	<self.pkg = aPackage>
+	self basicAt: 'pkg' put: aPackage.
+	
+	SystemAnnouncer current announce: (ClassMoved new
+		theClass: self;
+		yourself)
 !
 
 rename: aString