PrivateMetaclass.st
author Claus Gittinger <cg@exept.de>
Tue, 15 Oct 1996 21:37:17 +0200
changeset 1757 c153e56cbcad
parent 1755 fd24e54de800
child 1807 202f0af2c2e1
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
Metaclass subclass:#PrivateMetaclass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
	instanceVariableNames:'owningClass'
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Kernel-Classes'
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
1737
f3f31a158d7f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1736
diff changeset
     8
!PrivateMetaclass class methodsFor:'documentation'!
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
documentation
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
    A PrivateMetaclass is much like a regular Metaclass, but it is only visible (known)
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
    to some owningClass (which is also true for the PrivateMetaclasses sole instance).
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
1755
fd24e54de800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1744
diff changeset
    15
    Its sourceCode, package and revision is forced to be the same as the owning classes'.
fd24e54de800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1744
diff changeset
    16
    Therefore, privateClasses delegate some queries to their owning class.
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        Claus Gittinger
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [see also:]
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
        Behavior ClassDescription Class Metaclass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!PrivateMetaclass methodsFor:'accessing'!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
owningClass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    "return my owningClass"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    ^ owningClass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "Created: 11.10.1996 / 16:55:43 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
    "Modified: 11.10.1996 / 17:35:13 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
setOwningClass:something
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
    "set my owningClass - this is not a public entry"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    owningClass := something.
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "Created: 11.10.1996 / 17:11:05 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    "Modified: 11.10.1996 / 17:35:24 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!PrivateMetaclass methodsFor:'queries'!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
isBuiltInClass
1755
fd24e54de800 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1744
diff changeset
    49
     ^ self == PrivateMetaclass
1757
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    50
!
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    51
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    52
package
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    53
    "return my package-id"
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    54
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    55
    ^ owningClass package
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    56
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    57
    "Created: 15.10.1996 / 19:45:04 / cg"
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
1738
ea8b22caa829 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1737
diff changeset
    60
!PrivateMetaclass class methodsFor:'documentation'!
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
version
1757
c153e56cbcad *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1755
diff changeset
    63
    ^ '$Header: /cvs/stx/stx/libbasic/PrivateMetaclass.st,v 1.7 1996-10-15 19:37:17 cg Exp $'
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
! !