eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'PackageInfo':

Home

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

Class: PackageInfo


Inheritance:

   Object
   |
   +--PackageInfo

Package:
stx:libcompat
Category:
Compatibility-Squeak
Version:
rev: 1.21 date: 2019/03/28 14:14:00
user: cg
file: PackageInfo.st directory: libcompat
module: stx stc-classLibrary: libcompat

Description:


DO NOT DIRECTLY REFER TO THIS CLASS OR USE IT OTHERWISE IN YOUR CODE:

This is a dummy, mimicry class to allow some squeak code to be filed in.
Its protocol is neither complete, nor fully compatible with the corresponding
squeak original class.
ALSO: be aware, that this PackageInfo class does not know much about how ST/X
organizes its extensions. So NEVER EVER think about using it to get pacakgeInfo
on ST/X packages. It is only present to support porting Squeak tools, which
read Squeak packages (i.e. code importer packages).
One such being the monticello framework.


Class protocol:

compatibility
o  default

initialization
o  initialize
cg: the allSbclassesDo may be expensive;

packages access
o  allPackages
returns the monticello packages

usage example(s):

     self allPackages

o  named: aString

o  registerPackageName: aString

testing
o  existPackageNamed: aString
self existPackageNamed: 'PackageInfo'
self existPackageNamed: 'Zork'


Instance protocol:

accessing
o  name: something

comparing
o  = other

o  hash
(comment from inherited method)
return an Integer useful as a hash key for the receiver.
This hash should return same values for objects with same
contents (i.e. use this to hash on structure)

dependencies
o  externalCallers

o  externalClasses

o  externalRefsSelect: selBlock thenCollect: colBlock

o  externalSubclasses

o  externalUsers

listing
o  classes

o  classesAndMetaClasses

o  coreMethods

o  extensionClasses

o  extensionMethods

o  foreignClasses

o  foreignSystemCategories

o  methods

o  overrideMethods

o  selectors

o  systemCategories

modifying
o  addCoreMethod: aMethodReference

o  addExtensionMethod: aMethodReference

o  addMethod: aMethodReference

o  baseCategoryOfMethod: aMethodReference
Strip off any old prefixes

o  externalBehaviors

o  externalTraits

o  removeMethod: aMethodReference

naming
o  categoryName

o  externalName

o  methodCategoryPrefix
^ methodCategoryPrefix ifNil: [methodCategoryPrefix := '*', self packageName asLowercase]

o  packageName
^ packageName ifNil: [packageName := self categoryName]

o  packageName: aString

o  systemCategoryPrefix

registering
o  register

testing
o  category: categoryName matches: prefix

o  coreCategoriesForClass: aClass

o  coreMethodsForClass: aClass
sorry: that's the kind of code which is hard to understand...

o  extensionCategoriesForClass: aClass

o  extensionMethodsForClass: aClass
sigh: in squeak/pharo, extension methods are marked by their category

o  extensionMethodsFromClasses: classes

o  foreignExtensionCategoriesForClass: aClass

o  foreignExtensionMethodsForClass: aClass

o  includesClass: aClass

o  includesClassNamed: aClassName

o  includesMethod: aSymbol ofClass: aClass

o  includesMethodCategory: categoryName ofClass: aClass

o  includesMethodCategory: categoryName ofClassNamed: aClass

o  includesMethodReference: aMethodRef

o  includesSystemCategory: categoryName

o  isForeignClassExtension: categoryName

o  isOverrideMethod: aMethodReference

o  isYourClassExtension: categoryName

o  methodIsInPackage: aMethod
sigh: in squeak/pharo, extension methods are marked by their category

o  outsideClasses

o  referenceForMethod: aSymbol ofClass: aClass



ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Tue, 23 Apr 2024 21:29:25 GMT