eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'Change':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: Change


Inheritance:

   Object
   |
   +--Change
      |
      +--ClassChange
      |
      +--CompositeChange
      |
      +--DoItChange
      |
      +--FileInChange
      |
      +--InvalidChange
      |
      +--NameSpaceCreationChange
      |
      +--OtherChange

Package:
stx:libbasic3
Category:
System-Changes
Version:
rev: 1.80 date: 2023/03/04 23:09:18
user: cg
file: Change.st directory: libbasic3
module: stx stc-classLibrary: libbasic3

Description:


abstract superclass for all kind of changes - managed in changeSets.

[instance variables:]
    mcDefinition    ....    prep for monticello

copyright

COPYRIGHT (c) 1993 by Claus Gittinger All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the inclusion of the above copyright notice. This software may not be provided or otherwise made available to, or used by, any other person. No title to or ownership of the software is hereby transferred.

Class protocol:

queries
o  isAbstract
Return if this class is an abstract class.
True is returned here for myself only; false for subclasses.
Abstract subclasses must redefine this again.

support
o  isSource: source1Arg sameSourceAs: source2Arg
return true, if the given sources are the same, ignoring tabs and whitespace differences.


Instance protocol:

accessing
o  changeClass
the class of the change (nil if not present)

o  changeLanguage
Answer the programming language of the receiver.
Since changesets are currently only supported for Smalltalk,
return SmalltalkLanguage unconditionally

o  changeSelector
the selector, if it is a method change. Nil oherwise

o  changeSource
Return the source of the change

o  className
the className of the change

o  delta
Returns a delta to current state as symbol:
#+ .....the subject is to be added to the image (new)
#- .....the subject is to be removed from the image (old)
#= .....the image is up to date
#~ .....change version and image version differ
#? .....delta is unknown or N/A for this kind of change

Usage example(s):

We don't know how to compute delta for generic change

o  deltaDetail
Returns a delta to the current state as a ChangeDelta object

o  file
to be added as instvar

o  file: aFile position: anInteger
to be added

o  fullClassName

o  imageSource
Return the source of the in-image version
or nil if there is no source for this change

o  nameSpaceOverride: ns

o  nonMetaClassName

o  objectType: aSymbol
to be added as instvar

o  package

o  prettyPrintedSource
return the prettyPrinted or normal source of the change

o  removed
( an extension from the stx:libtool package )

o  removed: aBoolean
( an extension from the stx:libtool package )

o  selector

o  source
return the source of the change

o  source: someString
set the source of the change

o  timeOfChangeIfKnown

o  timeStamp: aTimestamp

applying
o  apply
apply the change

** This method must be redefined in concrete classes (subclassResponsibility) **

o  applyWithInfoOn: aDebugStream
apply the change, sending diagnostics to aDebugStream

o  applyWithNameSpaceOverride: nameSpaceOrNameSpaceName
Apply the change, overriding a namespace to given one

o  undo

change notification
o  sendChangeNotificationThroughSmalltalk
intentionally left blank

comparing
o  isForSameAs: changeB
return true, if the given change represents a change for the same
thingy as the receiver (i.e. same method, same definition etc.).

o  sameAs: changeB
return true, if the given change represents the same change as the receiver.

o  sameSourceAs: changeB
return true, if the given change has the same source as the receiver.

converting
o  asAntiChange
Returns my anti-change, i.e. change that does the
opposite. For class definition change it returns
class remove change, for method definition change
it returns method remove change. If there is no way
how to revert the change, an error is triggered.

JV: personal note: we should switch to deltastreams
(http://wiki.squeak.org/squeak/6001)

CG: is the above really true - what about a classDefChange for
an existing class????

enumerating
o  do: aBlock
ATTN: returns the value from aBlock!
is this required or just sloppy programming?

fileout
o  basicFileOutOn: aStream

o  fileOutOn: aStream

inspecting
o  inspectorExtraAttributes
( an extension from the stx:libtool package )
extra (pseudo instvar) entries to be shown in an inspector.

o  inspectorValueStringInListFor: anInspector
( an extension from the stx:libtool package )
^ self className,'(',self displayString,')'

printing & storing
o  printStringWithoutClassName

o  printWithoutClassNameOn: aStream

private
o  flattenOnto: aCollection
( an extension from the stx:libtool package )

o  flattenedChanges
( an extension from the stx:libtool package )

queries
o  isForGeneratedSubject
Answers true iff subject of this method is somewhat
auto-generated by some tool - just like version methods
are.

testing
o  isClassCategoryChange
return true, if this is a class-category change

o  isClassChange
return true, if this is a class-related change

o  isClassCommentChange
return true, if this is a class-comment change

o  isClassDefinitionChange
return true, if this is a class-definition change

o  isClassInitializeChange

o  isClassInstVarDefinitionChange

o  isClassRemoveChange

o  isClassRemoveChangeOrMethodRemoveChange

o  isClassRenameChange

o  isCompositeChange

o  isConflict
true if this change is different than what is already in the image
(i.e. it overwrites some existing code)

o  isDoIt

o  isMethodCategoryChange

o  isMethodCategoryRenameChange

o  isMethodChange
true if this is a method related change

o  isMethodChangeForCopyrightMethod
Return true if this is a change of #copyright method

o  isMethodChangeForExtensionsVersionMethod
true if this is a change for an extensionsVersion method

o  isMethodChangeForVersionMethod
true if this is a change for a version method

o  isMethodCodeChange
true if this is a method's code change (not package, category etc.)

o  isMethodDefinitionChange

o  isMethodPackageChange

o  isMethodRemoveChange

o  isNameSpaceCreationChange

o  isOrContainsClassDefinitionChange

o  isOtherChange

o  isPrimitiveChange

o  isPrimitiveDefinitionsChange

o  isPrimitiveFunctionsChange

o  isPrimitiveVariablesChange

o  isPrivateClassDefinitionChange

visiting
o  acceptChangeVisitor: aVisitor



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Thu, 30 May 2024 09:40:37 GMT