eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ClassChange':

Home

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

Class: ClassChange


Inheritance:

   Object
   |
   +--Change
      |
      +--ClassChange
         |
         +--ClassCategoryChange
         |
         +--ClassClassVariableChange
         |
         +--ClassCommentChange
         |
         +--ClassDefinitionChange
         |
         +--ClassInitializeChange
         |
         +--ClassInstVarDefinitionChange
         |
         +--ClassOtherChange
         |
         +--ClassPrimitiveChange
         |
         +--ClassRemoveChange
         |
         +--ClassRenameChange
         |
         +--MethodCategoryRenameChange
         |
         +--MethodChange

Package:
stx:libbasic3
Category:
System-Changes
Version:
rev: 1.90 date: 2023/06/06 23:10:48
user: cg
file: ClassChange.st directory: libbasic3
module: stx stc-classLibrary: libbasic3

Description:


Abstract superclass for class related changes
They are typically held in a ChangeSet.


[:instvars] incomplete
    className <String> ............ the class name *without* namespace, 
                                    but including all owners (if the class
                                    is private)
    owningClassName <String|nil> .. class name of the owning class if any
    nameSpaceName <String|nil> .... namespace name of the change or nil, if
                                    class is in no namespace.
    nameSpaceOverride <NameSpace|nil>  enforced namespace in which the class will 
                                    should be installed.

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:

instance creation
o  class: aClass

o  class: aClass source: source

o  className: aClassName

o  className: aClassName source: source


Instance protocol:

accessing
o  changeClass
the class of the change (nil if not present).
Take care for changes from foreign Smalltalks having
a different Namespace definition syntax

o  changeClass: aClass
set the class of the change

o  changeName

o  class: aClass
set the class of the change

o  class: aClass source: newSource
set both class and source of the change

o  classBaseName
return the className of the change.
This is without *any* prefix (namespace or private-owner)

o  className
Returns class name of the class as it was present in the original change.
For changes from a file with namespace override, this will be the
className *without* toplevel namespace, but with all owning classes
(if the change class is a private class).
For changes generated internally (by the browser), this will be the full name,
and the namespace override will be nil.

cg: this is all very confusing and needs some cleanup.
However it will be done, any change here needs checks in all users of this code.

o  className: aString
set the className of the change

o  className: newClassName source: newSource
set both className and source of the change

o  classNameForWellKnownVisualWorksNamespaceClass: className

o  classNameWithoutNamespace
return the className of the change

o  fullClassName
Returns the fully qualified class name, i.e., including namespace in which the
class should be installed
(i.e., the override namespace (if any) rather than original namespace (of any))

o  fullOwningClassName
Returns fully qualified owner's class name, i.e., including namespace in which the
class should be found (i.e., the override namespace (if any) rather than
original namespace (of any))

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)
but *without* any namespace prefix

o  nameSpace

o  nameSpace: aNameSpace

o  nameSpaceName
Return the namespace in which the class should be installed.

If the user enforces a namespace using nameSpaceOverride or
using query signal, then the enforced namespace is returned.
Otherwise, changes's original namespace is returned, if any.

o  nameSpaceName: aString

o  nameSpaceOverride
Return namespace enforced by the caller.

NOTE: This code used to use `Class nameSpaceQuerySignal` to
allow enforcing namespace by query. This made the code more
complicated and was used only by Tools::ChangeSetBrowser2 so
it was removed.

To apply change in particular namespace, use nameSpaceOverride:.
You may use applyWithNameSpaceOverride: for your convenience.

o  nameSpaceOverride: aNamespaceOrString

o  nonMetaClassName

o  owningClassName

o  owningClassName: aStringOrSymbol

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

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

o  source: newSource
set the source of the change

applying
o  apply
apply the change

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

printing & storing
o  printOn: aStream
append a user printed representation of the receiver to aStream.
The format is suitable for a human - not meant to be read back.

queries
o  cutMyNameSpaceOf: aString

o  cutNameSpaceOf: aString

o  isForMeta

o  nameSpaceForVWNamespace: ns class: className ifAbsent: default
map the namespace for a given class - hack; only works for some

testing
o  isClassChange



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Tue, 16 Jul 2024 06:01:49 GMT