eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'Class::SimulatedClassPool':

Home

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

Class: SimulatedClassPool (private in Class

This class is only visible from within Class.

Inheritance:

   Object
   |
   +--Class::SimulatedClassPool

Package:
stx:libbasic
Category:
Kernel-Classes
Owner:
Class
Author:
Claus Gittinger

Description:


in contrast to other smalltalks, ST/X does not keep the classVariables
in a dictionary; instead, classVariables are stored as special globals,
with the className as prefix (colon-separated).
The reason is that stc-compiled code should be allowed to access classVars
in a similar fashion to globals.

Whenever a classes classPool is requested (by code imported from visualworks), 
an instance of myself is created, which forwards at: and at:put: messages 
to the original class. 
Notice that classPools are never asked for by smalltalk/x
code - especially not by the browser. However, imported code (like the refactory browser)
may do so.

This is an additional goody class; therefore:

THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTOR ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTOR BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.


Instance protocol:

accessing
o  associationAt: aName
simulate an association

o  associationAt: aName ifAbsent: exceptionBlock
simulate an association

o  associations

o  associationsDo: aBlock
evaluate aBlock for all of my simulated classVarName->value associations

o  at: aKey
(comment from inherited method)
return the indexed instance variable with index, anInteger;
this method can be redefined in subclasses.

o  at: aKey ifAbsent: exceptionBlock
(comment from inherited method)
return the indexed instance variable with index, anInteger.
If there is no such key, return the value from exceptionalValue.
This method is usually be redefined in subclasses.

o  at: aKey put: something
(comment from inherited method)
store the 2nd arg, anObject as indexed instvar with index, anInteger.
this method can be redefined in subclasses. Returns anObject (sigh)

o  bindingOf: aKey

o  keys
Button classPool keys
Button classPool at:#ReturnForm

o  keysAndValuesDo: aBlock
evaluate aBlock for all of my simulated classVarName->value associations

accessing-private
o  setClass: aClass


Private classes:

    SimulatedVariableBinding


ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Mon, 18 Nov 2024 04:24:55 GMT