PrivateMetaclass.st
author Claus Gittinger <cg@exept.de>
Mon, 14 Oct 1996 18:30:23 +0200
changeset 1738 ea8b22caa829
parent 1737 f3f31a158d7f
child 1744 8722f7279ff2
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
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
    Its sourceCode is forced to be contained within the owning classes sourceFile.
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    Therefore, privateClasses use their owning classes sourceCode information
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    for access. Also, the package identifier is taken from the owningClass.
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    Finally, no private history is available.
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    [author:]
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
        Claus Gittinger
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [see also:]
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
        Behavior ClassDescription Class Metaclass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!PrivateMetaclass methodsFor:'accessing'!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
owningClass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    "return my owningClass"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    ^ owningClass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    "Created: 11.10.1996 / 16:55:43 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
    "Modified: 11.10.1996 / 17:35:13 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
setOwningClass:something
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    "set my owningClass - this is not a public entry"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    owningClass := something.
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    "Created: 11.10.1996 / 17:11:05 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    "Modified: 11.10.1996 / 17:35:24 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!PrivateMetaclass methodsFor:'accessing - delegated'!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
package
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    ^ self owningClass package
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "Created: 11.10.1996 / 17:35:52 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
package:ignored
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    ^ self
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    "Created: 11.10.1996 / 17:35:52 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
sourceCodeManager
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    ^ self owningClass sourceCodeManager
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    "Created: 11.10.1996 / 17:37:04 / cg"
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!PrivateMetaclass methodsFor:'queries'!
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
isBuiltInClass
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
     ^ false
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
! !
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
1738
ea8b22caa829 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1737
diff changeset
    74
!PrivateMetaclass class methodsFor:'documentation'!
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
version
1738
ea8b22caa829 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1737
diff changeset
    77
    ^ '$Header: /cvs/stx/stx/libbasic/PrivateMetaclass.st,v 1.4 1996-10-14 16:30:23 cg Exp $'
1731
d0d876111aa2 renamed
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
! !