yes code violates any idea of encapsulation.
SourcesArray at: 2 :)

Stef

On Nov 15, 2013, at 10:46 AM, Martin Dias <[email protected]> wrote:

> I was trying to figure out how to delegate somebody else the knowledge of the 
> file number:
> 
> RemoteString newString: aString onFileNumber: 2 
> 
> I was thinking in a replacement like:
> 
> SourceFiles newRemoteStringWith: aString
> 
> or:
> 
>  SourceFiles oldRemoteStringAt: aSourcePointer
> 
> And let a SourceFileArray instance decide what's the file number.
> 
> But it's not so easy. In other methods (I think related to condensing the 
> file or filing out), it's also specified the filestream:
> 
> RemoteString newString: self organization classComment onFileNumber: 2 
> toFile: aFileStream
> 
> Martín
> 
> 
> On Thu, Nov 14, 2013 at 7:51 PM, Stéphane Ducasse <[email protected]> 
> wrote:
> I hate this code.
> I had to work with it so many times when I extracted all the squeak version 
> to load them in VW to be analysed
> in Moose (and sadly nobody did anything with them) I should have started to 
> publish ideas on them - silly me.
> 
> Stef
> 
> On Nov 14, 2013, at 5:52 PM, Martin Dias <[email protected]> wrote:
> 
>> Hi
>> 
>> Any idea why the "aString isKindOf: RemoteString" is there?
>> 
>> In TClassDescription:
>> 
>> classComment: aString stamp: aStamp
>>      "Store the comment, aString or Text or RemoteString, associated with 
>> the class we are organizing.  Empty string gets stored only if had a 
>> non-empty one before."
>> 
>>      | pointer header file oldCommentRemoteString oldComment oldStamp |
>>      oldComment := self organization classComment.
>>      oldStamp := self organization commentStamp.
>> 
>>      (aString isKindOf: RemoteString) ifTrue: [
>>              SystemAnnouncer uniqueInstance 
>>                      class: self 
>>                      oldComment: oldComment 
>>                      newComment: aString string 
>>                      oldStamp: oldStamp 
>>                      newStamp: aStamp.
>>              ^ self organization classComment: aString stamp: aStamp].
>> 
>>      oldCommentRemoteString := self organization commentRemoteStr.
>>      (aString size = 0) & (oldCommentRemoteString isNil) ifTrue: [^ self 
>> organization classComment: nil].
>>              "never had a class comment, no need to write empty string out"
>> 
>>      pointer := oldCommentRemoteString 
>>                      ifNil: [0] 
>>                      ifNotNil: [oldCommentRemoteString sourcePointer].
>>      
>>      (file := SourceFiles at: 2) ifNotNil: [
>>              file setToEnd; cr; nextPut: $!. "directly"
>>              "Should be saying (file command: 'H3') for HTML, but ignoring 
>> it here"
>>              header := String streamContents: [:strm | strm nextPutAll: self 
>> name;
>>                      nextPutAll: ' commentStamp: '.
>>                      aStamp storeOn: strm.
>>                      strm nextPutAll: ' prior: '; nextPutAll: pointer 
>> printString].
>>              file nextChunkPut: header].
>>      
>>      self organization 
>>              classComment: (RemoteString newString: aString onFileNumber: 2) 
>>              stamp: aStamp.
>>      
>>      SystemAnnouncer uniqueInstance 
>>              class: self 
>>              oldComment: oldComment 
>>              newComment: aString 
>>              oldStamp: oldStamp 
>>              newStamp: aStamp
>> 
>> (nice method eh!)
>> 
>> Martín 
> 
> 

Reply via email to