eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ClassDefinitionChange':

Home

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

Class: ClassDefinitionChange


Inheritance:

   Object
   |
   +--Change
      |
      +--ClassChange
         |
         +--ClassDefinitionChange

Package:
stx:libbasic3
Category:
System-Changes
Version:
rev: 1.101 date: 2018/04/24 07:58:28
user: cg
file: ClassDefinitionChange.st directory: libbasic3
module: stx stc-classLibrary: libbasic3
Author:
Claus Gittinger

Description:


instances represent class definition-changes. 
They are typically held in a ChangeSet.


Instance protocol:

accessing
o  basicSuperClassName

o  category

o  category: something

o  classInstanceVariableNames

o  classInstanceVariableNames: aCollectionOfWords

o  classInstanceVariableString

o  classInstanceVariableString: aString

o  classVariableNames

o  classVariableNames: aCollectionOfWords

o  classVariableString

o  classVariableString: aString

o  delta
Tools::TextDiff2Tool openOn: changeSource label: 'Change' and: imageSource label: 'Image'

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

o  imageSource
return the source for the in-image version of the method

o  indexedType

o  instanceVariableNames

o  instanceVariableNames: aCollectionOfWords

o  instanceVariableString

o  instanceVariableString: aString

o  localClassName
for private classes, this returns the name relative to its owner;
for non-private ones, this is the regular name.
Notice that className always returns the full name (incl. any owner prefix)

o  nameSpaceName
"/ JV: What is the following good for? Please explain..."
usage example(s):
^ self cutNameSpaceOf:(self nameSpaceOverride ? super nameSpaceName)

o  nameSpaceName: aNameSpaceName classType: aClassType otherParameters: otherParametersArg
this instance setup message is used when reading from a VW-xml change file.
Support for this is not yet complete.

o  objectType
return the value of the instance variable 'objectType' (automatically generated)

o  objectType: something
set the value of the instance variable 'objectType' (automatically generated)

o  poolDictionaries

o  poolDictionaries: something

o  private: aBoolean

o  source
return the source of the change;
either the original source or a synthesized

o  superClassName
returns nil, if no superclass

o  superClassName: aString

o  superClassNameWithoutMyNamespace

o  superClassNameWithoutNamespace

applying
o  apply
Some classes have nil superclass (such as Object)...
usage example(s):
      (ClassDefinitionChange className: #TestB source: 'TestA subclass: #TestB
          instanceVariableNames:''''
          classVariableNames:''''
          poolDictionaries:''''
          category:''* remove me *''')
          apply

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

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.

converting
o  asAntiChange
(comment from inherited method)
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????

printing & storing
o  definitionString
owningClassName isNil ifTrue:[

o  definitionStringInNamespace: nsOrNil
a visualWorks static variable definition change.

o  definitionStringWithoutNamespace
cg - huh - who needs that? (the definitionString already does NOT include the classes namespace)

o  printOn: aStream
(comment from inherited method)
append a user printed representation of the receiver to aStream.
The format is suitable for a human - not meant to be read back.

o  printWithoutClassNameOn: aStream

queries
o  definitionSelector

o  definitionSelector: aSelector

o  owningClassName
the owner's name, excluding the namespace

o  owningClassName: aStringOrSymbol

special
o  installAsAutoloadedClassIfPublicWithFilename: aFilenameString
install the class defined by this change as autoloaded.
Skip private classes.
Enter class file name as abbreviation

o  invalidateSource
internal - flush the sourceString if it got invalidated due to a
className, superclassName, etc... change

o  setupFromSource
Extract data from class definition string in source.
WARNING: This overwrites values in instvars!

testing
o  isClassDefinitionChange

o  isOrContainsClassDefinitionChange

o  isPrivateClassDefinitionChange
compute lazily; remember in private

o  isVariable

visiting
o  acceptChangeVisitor: aVisitor



ST/X 7.1.0.0; WebServer 1.663 at exept.de:8081; Sat, 21 Jul 2018 07:47:38 GMT