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 > >
