eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ProjectDefinition':

Home

everywhere
www.exept.de
for:
[back]

Class: ProjectDefinition


Inheritance:

   Object
   |
   +--ProjectDefinition
      |
      +--ApplicationDefinition
      |
      +--LibraryDefinition

Package:
stx:libbasic
Category:
System-Support-Projects
Version:
rev: 1.312 date: 2010/04/07 17:51:24
user: cg
file: ProjectDefinition.st directory: libbasic
module: stx stc-classLibrary: libbasic

Description:


As ST/X is (still) very tightly bound with stc, we keep the package and project information
in a class-object (instead of some Project-object). This has the advantage, that it can be
compiled and included in a compiled class library just like any other class.
Every package includes an subclass of me (an instance of my meta), which provides useful
information about the versioning and packaging. Me myself, I know how to generate dependency
information and can generate makefiles and other build-support files for compilation.

Some special notes about extension methods:
if a package is loaded (Smalltalk loadPackage:'foo:bar/baz'), any already loaded package of which
methods are overwritten by an extension of this package, the other package is asked to safe those
methods in its safe(ForOverwrittenMethods). Thus, if the other package or any of its classes is asked
to file itself out, it can do so using the safe (otherwise, you'D not be able to checkin a class while
it has an overriding extension loaded).
Also, the information about which other package was in charge when a method is overwritten is recorded in
extensionOverwriteInfo. This is used to correctly reinstall an overwritten method, whenever a package is
unloaded.


Class protocol:

accessing
o  allPreRequisites
answer all (recursive) prerequisite project ids of myself - in random order.
If we exclude a project, but one of our prerequisite projects depends on it,

o  allPreRequisitesSorted
answer all the prerequisites of this projects sorted in
the order they are needed.
Use this to e.g. compile packages in the dependency order

o  directory
for packageId compatibility

o  initialClassNameForDefinitionOf: aPackageId
given a package-ID, return an appropriate class name for this package

o  libraryName

o  libraryNameFor: aProjectID

o  module

o  moduleDirectory

o  moduleDirectoryFor: aProjectID

o  moduleDirectory_win32

o  moduleDirectory_win32For: projectID

o  moduleFor: aProjectID

o  moduleOfClass: aClass

o  monticelloPackageName
hook for packages which have been loaded from monticello

o  msdosPathToPackage: toPackageID from: fromPackageID
Returns the path to the package defined by aPackageID relative to my path

o  msdosPathToTopFor: aProjectID
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

o  packageDirectory

o  packageName
the last component

o  packageNameFor: aProjectID

o  parentProject

o  parentProjectFor: aProjectID

o  pathSeparator: platformName

o  pathSeparator_unix

o  pathSeparator_win32

o  pathTo: aBaseFilename inPackage: aPackageID architecture: arch
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

o  pathToPackage_unix: aPackageID
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

o  pathToPackage_win32: aPackageID
Returns the path to the package defined by aPackageID relative to my path

o  pathToTop_unix
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

o  pathToTop_win32
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

o  projectIsLoaded
answer true, if this project is completely loaded into the image

o  projectIsLoaded: something

o  requiredProjects

o  topRelativePathTo: aBaseFilename inPackage: aPackageID architecture: arch
Returns the path to stx counting the number of $/ and $: in the package name
and adding for each one '../' to get the ST/X top directory

o  topRelativePathToPackage_unix: aPackageID
Returns the path to the package as specified by aPackageID relative to the top directory

o  topRelativePathToPackage_win32: aPackageID
Returns the path to the package as specified by aPackageID relative to the top directory

o  unixPathToPackage: toPackageID from: fromPackageID
Returns the path to the package defined by aPackageID relative to my path

o  unixPathToTopFor: aProjectID
Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory

accessing - packaging
o  classNames: aCollectionOfClassNames
set the set of classes

o  classNamesAndAttributes: newSpec usingCompiler: compilerOrNil
set the set of classes. and attributes
Because this requires compilation of my classList-method, a compiler can be passed in,
which has to do the job.
(this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)

o  excludeClasses: toExclude usingCompiler: compilerOrNil
exclude (remove from classList) a number of classes.
Because this requires compilation of my classList-method, a compiler can be passed in,
which has to do the job.
(this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)

o  includeClasses: toInclude usingCompiler: compilerOrNil
include (add to classList) a number of classes.
Because this requires compilation of my classList-method, a compiler can be passed in,
which has to do the job.
(this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)

o  makeClassesAutoloaded: toMakeAutoloaded usingCompiler: compilerOrNil
include as autoloaded (add to classList) a number of classes.
Because this requires compilation of my classList-method, a compiler can be passed in,
which has to do the job.
(this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)

accessing - svn
o  svnRevision
Answers SVN revision of given package. The revision is computed
as follows:
1) Look at package directory if there is .svn administration
directory. If so, uses SVN to obtain SVN revision & return
2) If svnRevisionNr return non-nil, use that as SVN revision & return
3) If everything fails, compute maximum from all revision of all
classes & extensions

class initialization
o  initialize

o  initializeAllProjectDefinitions
needs everything else (especially the compiler etc.) to be initialized.
Therefore, its not invoked by #initialize, but instead explicitely,
by Smalltalk

o  installAutoloadedClasses
install all of my autoloaded classes (if any)

code generation
o  applicationIconFileName_code

o  classNamesAndAttributes_codeFor: aSpecArray
generate method code returning all classes of the project from the given spec.

o  classNamesAndAttributes_code_ignoreOldEntries: ignoreOldEntries ignoreOldDefinition: ignoreOldDefinition
generate method code returning all classes of the project.
Platform attributes are kept from the old definition.
If ignoreOldEntries is true, the list is completely recreated;
if false, existing entries are preserved.
If ignoreOldDefinition is true, the autoload attribute is set/reset if
the class is installed as autoloaded in the image (i.e. the state in the image is taken).
If false, it is taken from an existing definition in #classNamesAndAttributes

o  companyName_code

o  companyName_codeFor: aString

o  compileDescriptionMethods

o  description_code

o  effectivePreRequisites
get the preRequisites, that are not excluded

o  effectiveSubProjects
get the subProjects, that are not excluded

o  excludedFromPreRequisites_code
generate the code of the #excludedFromPreRequisites method

o  extensionMethodNames_code

o  extensionMethodNames_code_ignoreOldEntries: ignoreOldEntries

o  forEachContentsMethodsCodeToCompileDo: aTwoArgBlock ignoreOldDefinition: ignoreOldDefinition

o  forEachMethodsCodeToCompileDo: aTwoArgBlock

o  forEachMethodsCodeToCompileDo: aTwoArgBlock ignoreOldDefinition: ignoreOldDefinition

o  legalCopyright_code

o  preRequisites_code
generate the code of the #preRequisites method

o  productName_code

o  productName_codeFor: aString

o  svnRevisionNr_code: revisionNrOrNil

defaults
o  applicationTypes

o  defaultCategory

o  defaultProjectType

o  defaultProjectTypeForGUIApplication

o  defaultProjectTypeForNonGUIApplication

o  guiApplicationType

o  libraryType

o  libraryTypes

o  nonGuiApplicationType

o  projectTypeSelectors
a list of possible project type selectors

o  projectTypes
a list of possible project types

description
o  excludedFromPreRequisites
list packages which are to be explicitely excluded from the automatic constructed
prerequisites list. If empty, everything that is found along the inheritance of any of
my classes is considered to be a prerequisite package.

o  excludedFromSubProjects
list packages which are to be explicitely excluded from the automatic constructed
subProjects list. If empty, every sub-package is included as a prerequisite.

o  preRequisites
list packages which are required as a prerequisite. This method is generated automatically,
by searching along the inheritance chain of all of my classes.
However, when generating automatically, packages are only added - never removed, unless listed
in excludedFromPreRequisites.

o  preRequisitesForBuilding
for now, there is only one list of prerequisites present;
will be changed in the (near?) future

o  preRequisitesForLoading
for now, there is only one list of prerequisites present;
will be changed in the (near?) future

o  siblingsAreSubProjects

o  splashFileName
answer the base-name of the splash bitmap.

Default is nil, for no splash. If non-nil, it must be a bmp file's name

o  subProjects

description - actions
o  postLoadAction
invoked after loading a project

o  preLoadAction
invoked before loading a project

o  preUnloadAction
invoked before unloading a project

description - classes
o  additionalClassNamesAndAttributes

o  classNamesAndAttributes
a correponding method with real names must be present in my concrete subclasses

o  extensionMethodNames
list class/selector pairs of extensions.
A correponding method with real names must be present in my concrete subclasses

o  ignoredClassNames
can be redefined to suppress some classes from being included in a
generated classNamesAndAttributes spec

description - compilation
o  additionalBaseAddressDefinition_bc_dot_mak
allows for a base-address definition to be added to the bc.mak file.
Subclasses may redefine this to something like
LIB_BASE=$(LIBWIDG_BASE)
This will be inserted BEFORE the 'include stdHeader'

o  additionalDefinitions
allows for additional definitions/rules to be added to the make.proto and bc.mak file.

o  additionalDefinitions_bc_dot_mak
allows for additional definitions/rules to be added to the bc.mak file.
Subclasses may redefine this.

o  additionalDefinitions_make_dot_proto
allows for additional definitions/rules to be added to the make.proto file.

o  additionalDefinitions_nt_dot_mak
obsolete - kept for compatibility with old project files

o  additionalLinkLibraries_bc_dot_mak
allows for additional static libraries to be added to the bc.mak file.
Subclasses may redefine this

o  additionalLinkLibraries_make_dot_proto
allows for additional static libraries to be added to the make.proto file.

o  additionalLinkLibraries_nt_dot_mak
obsolete - kept for compatibility with old project files

o  additionalRulesSvn_make_dot_proto

o  additionalRules_bc_dot_mak
obsolete - kept for compatibility with old project files

o  additionalRules_make_dot_proto
allows for additional rules to be added to the make.proto file.

o  additionalSharedLinkLibraries_make_dot_proto
allows for additional shared libraries to be added to the make.proto file.

o  additionalTargetsSvn_make_dot_proto

o  additionalTargets_bc_dot_mak
obsolete - kept for compatibility with old project files

o  additionalTargets_make_dot_proto
allows for additional targets to be added to the make.proto file.

o  globalDefines
allow for the specification of additional defines for stc compilation of prerequisite packages
an subprojects

o  globalDefines_unix
allow for the specification of additional defines for stc compilation of prerequisite packages
an subprojects

o  globalDefines_win32
allow for the specification of additional defines for stc compilation of prerequisite packages
an subprojects

o  localDefines
allow for the specification of additional defines for stc compilation

o  localDefines_unix
allow for the specification of additional defines for stc compilation

o  localDefines_win32
allow for the specification of additional defines for stc compilation

o  localIncludes
allow for the specification of additional include directories

o  localIncludes_unix
allow for the specification of additional include directories

o  localIncludes_win32
allow for the specification of additional include directories

o  primaryTarget
allows the primary make target to be defined in the Make.proto/bc.mak file.

o  primaryTarget_bc_dot_mak
allows the primary make target to be defined in the bc.mak file.

o  primaryTarget_make_dot_proto
allows the primary make target to be defined in the Make.proto file.

o  stcOptimizationOptions
see the stc reference / stc usage for options.
For now, the following variants are useful:
+optspace3 most compact code
- use for all gui, application code.

+optinline +optinline2 +inlineNew
fastest code
- use only for computation-intensive classes

o  stcWarningOptions
see the stc reference / stc usage for options.
For now, the following variants are useful:
-warn no warnings
-warnNonStandard no warnings about non-standard smalltalk features

description - project information
o  applicationAdditionalIconFileNames
Return the icon-filenames for additional icons of the application
(empty collection if there are none)

o  applicationIconFileName
Return the icon-filename for the application (nil if there is none)

o  companyName
Returns a company string which will appear in <lib>.rc.
Under win32, this is placed into the dlls file-info

o  description
Returns a description string which will appear in vc.def / bc.def

o  fileDescription
Returns a description string which will appear in libName.rc and the rc-file

o  fileMajorVersionNr
Returns a versionNumber which will appear in libName.rc

o  fileMinorVersionNr
Returns a versionNumber which will appear in libName.rc

o  fileReleaseNr
Returns a releaseNumber which will appear in libName.rc

o  fileRevisionNr
Returns a revisionNumber which will appear in libName.rc

o  fileVersion
Returns a fileVersion string which will appear in libName.rc

o  fileVersionCommaSeparated
Returns a fileVersion string which will appear in libName.rc

o  internalName
Returns a name string which will appear in libName.rc

o  legalCopyright
Returns a copyright string which will appear in <lib>.rc.
Under win32, this is placed into the dlls file-info

o  majorVersionNr
Returns a versionNumber which will appear in libName.rc

o  minorVersionNr
Returns a versionNumber which will appear in libName.rc

o  productDate
Returns a product-date string which will appear in libName.rc and the installer file

o  productFilename
Returns a filename which be used as linkname, product file name etc.

o  productInstallDir
Returns a product default installDir which will appear in <app>.nsi.

o  productName
Returns a product name which will appear in <lib>.rc.
Under win32, this is placed into the dlls file-info

o  productNameAsValidFilename
Returns a product name which will appear in <lib>.rc.
Under win32, this is placed into the dlls file-info

o  productPublisher
Returns a product publisher which will appear in <app>.nsi.

o  productVersion
Returns a product version which will appear in libName.rc and the installer file

o  productVersionCommaSeparated
Returns a product version which will appear in libName.rc

o  productWebSite
Returns a product webSite which will appear in <app>.nsi.

o  releaseNr
Returns a releaseNr which will appear in libName.rc

o  revisionNr
Returns a revisionNr which will appear in libName.rc

o  versionNumber
Returns a version string which will appear in bc.def / vc.def

file generation
o  basicFileNamesToGenerate
answer a dictionary (filename -> generator method) with all the files,
that have to be generated for this package

o  fileNamesToGenerate
answer the files that have to be generated as a dictionary of names and generator method

o  forEachFileNameAndGeneratedContentsDo: aTwoArgBlock

o  forEachFileNameAndGeneratorMethodDo: aTwoArgBlock

o  generateFile: filename

o  generateRemoveShellScriptOn: aStream
generate a shell script to a cvs remove of broken class filenames.
To be called after the output of #generateRenameShellScript: has been performed

o  generateRenameShellScriptOn: aStream
generate a shell script to rename broken class filenames

o  generate_abbrev_dot_stc

o  generate_bc_dot_mak

o  generate_bmake_dot_mak

o  generate_lcmake_dot_mak

o  generate_loadAll

o  generate_make_dot_proto

o  generate_make_dot_spec

o  generate_makefile

o  generate_packageName_dot_rc

o  generate_vc_dot_def

o  generate_vcmake_dot_mak

o  protectedFileNames
names of files which should NOT be generated
- redefine this to protect a hand-written Make.proto or other handwritten support files

o  rcFilename

file mappings
o  bc_dot_mak_mappings

o  bmake_dot_mak_mappings

o  classLine_mappings: aClassName

o  make_dot_proto_mappings

o  make_dot_spec_mappings

o  makefile_mappings

o  packageName_dot_rc_mappings

o  replaceMappings: mappings in: fileTemplate
Replaces the defined variable mappings found in a file template with the corresponding information

o  st2c: aString

file mappings support
o  classNamesByCategory
answer a dictionary
category -> classNames topological sorted

o  commonSymbolsFlag
only for libraries

o  filenameForClass: classNameOrClass
answer the base filename of the class without suffix

o  generateClassLines: classLineTemplate
for the init-file: generate class-init-lines for all classes

o  generateClassLines: classLineTemplate forClasses: classNames
for the init-file: generate class-init-lines for a collection of classes

o  generateClassLines: classLineTemplate forClasses: classNames includeAdditionalClasses: includeAdditionalClasses
for the init-file: generate class-init-lines for a collection of classes

o  generateClassLines_libInit_dot_cc

o  generateClasses_make_dot_spec

o  generateDependencies: whichArchitecture

o  generateDependencies_unix

o  generateDependencies_win32

o  generateLocalIncludes_unix

o  generateLocalIncludes_win32

o  generateObjects_make_dot_spec

o  generateRequiredMakePrerequisites_bc_dot_mak

o  generateRequiredMakePrerequisites_make_dot_proto

o  generateSubDirectories

o  generate_definitionClassLine_libInit_dot_cc
for the init-file: generate a single class-init-line for the definition class itself

o  headerFileOutputArg
"all stx stuff goes to the common include directory.

o  objectLine_make_dot_spec_mappings: aClassName

o  subProjectBmakeCalls
generate submake-calls for borland bcc

o  subProjectLCmakeCalls
generate submake-calls for lc

o  subProjectMakeCallsUsing: callString

o  subProjectVCmakeCalls
generate submake-calls for visual-C

file templates
o  bc_dot_mak
answer a template for the bc.mak makefile.
Any variable definition %(Variable) will be later replaced by the mapping.
$% characters have to be duplicated.
Only needed for WIN

** This method raises an error - it must be redefined in concrete classes **

o  bmake_dot_mak
the template code for the bmake.bat file

o  classLine_libInit_dot_cc

o  lcmake_dot_mak
the template code for the lcmake.bat file

o  make_dot_proto
the template code for the make.proto file

** This method raises an error - it must be redefined in concrete classes **

o  make_dot_spec

o  makefile

o  objectLine_make_dot_spec

o  packageName_dot_rc
the template code for the <libName>.rc file.
Only used for WIN

o  vcmake_dot_mak
the template code for the vcmake.bat file

instance creation
o  definitionClassForMonticelloPackage: aMonicelloPackagename

o  definitionClassForMonticelloPackage: aMonicelloPackagename createIfAbsent: createIfAbsent

o  definitionClassForPackage: aPackageID

o  definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent

o  definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType: typeOrNil

o  definitionClassForPackage: newProjectID projectType: typeOrNil createIfAbsent: createIfAbsent

o  definitionClassForType: type
answer the class that describes a give project type

o  newForPackage: packageID

o  newNamed: newName package: packageID

loading
o  ensureFullyLoaded
ensure that all classes and extensions are loaded properly.
This is normally no problem for compiled classLibs - however, if a package
has only be installedAsAutoloaded, some classes might want to ensure that
when being loaded themself.

o  load
load the project
Answer true, if new classes have been installed for this package,
false if the package's classes have been already present.

o  loadAsAutoloaded: asAutoloaded
load the project.
If asAutoloaded == true, install all new classes as autoloaded.
Answer true, if new classes have been installed for this package,
false if the package's classes have been already present.

o  unloadPackage
unload the project.
Fails if there are still instances of any of my classes in the system

misc ui support
o  iconInBrowserSymbol

private
o  additionalClassAttributesFor: aClass
Answers additional set of class attributes for given class
Individual project definitions may override this method, but
overriding method should always merge its attributes with result
of 'super additionalClassAttributesFor: aClass'.

Here, we add #autoload attributes to all test cases and
test resources, as they are not neccessary for the package
and should not be compiled (because of unwanted dependency
on stx:goodies/sunit package)

o  checkIfClassesArePresent
check if all classes defined by this project are present and
offer a dialog to abort the current operation if not

o  classNamesAndAttributesAsSpecArray
given a classNamesAndAttributes array, make this a spec array (array of arrays).
This decompresses class-name entries into a one-element array for easier processing

o  classNamesAndAttributesDo: aBlock

o  classNamesAndAttributesFromSpecArray: aSpecArray
given a spec array (array of arrays), make this a classNamesAndAttributes array
as stored literally in the method.
This compresses single element array-elements into plain names
(to save code in the compiled binaries)

o  compile: someCode categorized: category

o  compiled_classes

o  compiled_classesDo: aBlock

o  compiled_classesForArchitecture: arch

o  compiled_classes_common

o  cvsRevision

o  inconsistency: message

o  makeOSIncludesWith: fileSeparator from: aString

o  makeUnixIncludes: aString

o  makeWin32Includes: aString

o  namesAndAttributesIn: aCollection do: aBlock

o  searchForClasses
answer all non-private classes that belong to this project.
They are sorted in load order

o  searchForClassesWithProject: aProjectID

o  searchForExtensions

o  searchForExtensionsWithProject: aProjectID
search for any class which has extensions from aProjectID.
Return the extension-methods sorted by classname-selector

o  searchForProjectsWhichProvideHeaderFiles

o  searchForSiblingProjects
answer all the packages (package names) having the my parent package

o  searchForSubProjects
answer all packages (package names), that are my subProjects

o  setupForType: typeOrNil

private-extension handling
o  hasSavedOverwrittenMethods
true, if any of my methods was overwritten by another loaded package.
These methods are now in my safe

o  methodOverwrittenBy: aMethod
return the (hidden) original method, which was located in another package
and which got overwritten by one of my extension methods. Nil if there is none.

o  rememberOverwrittenExtensionMethods
before loading, tell other packages to keep a safe reference to any method
which gets overloaded by me, and also remember here, whome I have overloaded.
This allows for two things:
a) correct fileout of the other base-package (for example, when checking in any of its class)
b) correct unloading of myself

o  rememberOverwrittenMethod: oldMethod inClass: aClass
invoked from another projectDefinition, when that package is about to be loaded
and about to overwrite one of my methods.
I will save the method locally, to allow for correct fileout of this class/project or
to correctly reestablish my methods when the other package is unloaded later.

o  restoreOverwrittenExtensionMethods
after unloading, tell other packages to restore any safed reference to any method
which got overloaded by me.

o  savedOverwrittenMethodForClass: aClass selector: aSelector
return one of my saved original methods

private-loading
o  checkPrerequisitesForLoading

o  extensionOverwriteInfo

o  fetchSlotsFrom: myFirstIncarnation
this is invoked in a just loaded instance of myself,
to fetch the safe and extensionInfo from my first incarnation

o  loadAllClassesAsAutoloaded: asAutoloaded
load (fileIn) classes that should be present -
install as autoloaded classes marked to be autoloaded.
If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.

Answer true, if classes have been loaded

o  loadClassLibrary
try to load a binary class library
Return true if ok, false if not.

o  loadExtensions
load extension methods - do not load if they are already present

o  loadPackages: aListOfPackages asAutoloaded: asAutoloaded
load some packages (at least the projectDefinitions and their extensions).
If asAutoloaded == true, classes will be only installed as autoloaded.

o  loadPreRequisitesAsAutoloaded: asAutoloaded
load other packages (at least the projectDefinitions and their extensions)

o  loadSubProjects
load other packages (at least the projectDefinitions and their extensions)

o  loadSubProjectsAsAutoloaded: asAutoloaded
load other packages (at least the projectDefinitions and their extensions)

o  safeForOverwrittenMethods

o  unloadAllClasses

o  unloadClassLibrary

o  unloadSubProjects
unload other packages

o  update: anAspectSymbol with: argument from: changedObject
when any of my class methods is changed, we mark the project as unloaded.
May be some mor classes have to be loaded

private-prerequisites
o  addReferencesToClassesFromGlobalsIn: aSetOfClasses to: usedClassReasons
helper for searchForPreRequisites

o  addReferencesToClassesFromGlobalsInMethods: someMethods to: usedClassReasons
helper for searchForPreRequisites

o  searchForPreRequisites
answer a Dictionary where the keys are the prerequisite package for this package
and the values are a Set of reasons, why each package is required

queries
o  allClassNames

o  autoloaded_classNames

o  classNames
answer an array containing all the class names of the project's classes

o  classNamesForWhich: aBlock
a correponding method with real names is generated in my subclasses

o  classes
list my classes.
Project must be loaded - otherwise an error is reported here.
Use #classNames if you are only interested in the names

o  compiled_classNames

o  compiled_classNamesForPlatform
answer the classes to be compiled only for the current platformName

o  compiled_classNamesForPlatform: platformName
answer the classes to be compiled only for platformName
platformName is one of #unix, #win32 (OperatingSystem platformName)

o  compiled_classNames_common
classes to be compiled for any platform

o  compiled_classNames_unix
class, only to be compiled under unix

o  compiled_classNames_windows
class, only to be compiled under windows

o  extensionMethods
list my extension methods.
Project must be loaded - otherwise an error is reported here.
Use #extensionMethodsNames if you are only interested in the names

o  hasAllClassesFullyLoaded
return true, if all classes are present and loaded

o  hasAllClassesLoaded
return true, if all classes are present (although, some might be autoloaded)

o  hasAllClassesLoaded: checkIfFullyLoaded
check if all classes for this platform are present.
If checkIfFullyLoaded is true, they must be fully loaded; that means: not autoloaded

o  hasAllCompiledClassesFullyLoaded
return true, if all compiled classes are present and loaded

o  hasAllCompiledClassesLoaded: checkIfFullyLoaded
check if all compiled classes for this platform are present.
If checkIfFullyLoaded is true, they must be fully loaded, that is not autoloaded

o  hasAllExtensionsLoaded
answer true, if all extensions of this package have been loaded.
This is a query - so no side effects please

o  hasClasses: classNames loaded: checkIfFullyLoaded
answer true, if all classes referenced by classNames have been loaded
into the image. If checkIfFullyLoaded, classes installed as autoloaded
are not considered

o  hasExtensionMethods

o  hasPostLoadAction
true if postLoadAction has been redefined

o  hasPostUnloadAction
true if postUnloadAction has been redefined

o  hasPreLoadAction
true if preLoadAction has been redefined

o  hasPreUnloadAction
true if preUnloadAction has been redefined

o  isFullyLoaded

o  projectType

** This method raises an error - it must be redefined in concrete classes **

queries-privacy
o  showClassDocumentationOf: aClass
used by the HTMLDoc-generator to ask if a classes' protocol is to be documented
or hidden.
(used for expecco, to suppress documentation of workflow- and expecco classes
in the expecco-class browser)

sanity checks
o  validateDescription

testing
o  isAbstract

o  isApplicationDefinition

o  isConsoleApplication

o  isGUIApplication

o  isLibraryDefinition

o  isProjectDefinition
concrete i.e. not abstract



ST/X 6.1.1; WebServer 1.620 at exept:8081; Wed, 23 May 2012 20:44:44 GMT