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.29 date: 2023/12/12 14:50:20
user: stefan
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.

copyright

COPYRIGHT (c) 2006 by eXept Software AG 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:

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
(comment from inherited method)
return true if the receiver and the arg have the same structure.
Notice:
This method is partially open coded (inlined) by the compiler(s)
identical objects are always considered equal.
redefining it may not work as expected.

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
Modified (format): / 12-12-2023 / 15:50:05 / Stefan Vogel

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.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Mon, 18 Nov 2024 04:16:12 GMT