eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'Project':

Home

everywhere
www.exept.de
for:
[back]

Class: Project


Inheritance:

   Object
   |
   +--Project

Package:
stx:libbasic
Category:
System-Support
Version:
rev: 1.208 date: 2009/10/27 09:00:33
user: cg
file: Project.st directory: libbasic
module: stx stc-classLibrary: libbasic
Author:
Claus Gittinger

Description:


WARNING:
    This class is almost completely obsolete (before even being finished)

Most references to this class are being removed, and we are only
looking at PackageId and ProjectDefinition in the future.
Please ignore everything regarding to packaging and building below.
Project instance(s) are still used to keep a reference to the current changeSet,
but even that may move to a projectDefinition in the future.

This class is still under construction (especially the build features are unfinished).
Currently, all it does is keep track of per-project views 
(to hide or show them), define the directory when filing-out,
and define packageNames for new classes and methods.

instance variables:
    name            <String>        the name of this project, as shown
                                    in a ProjectView

    changeSet       <ChangeSet>     changes done, while this was the active project

    views           <Collection>    views opened while this was the active project

    directoryName   <String>        directory name, where fileOuts are done

    properties 

    packageName     <String>        given to classes/methods which are created while
                                    this is the active project

    repositoryDirectory             (default) name of the repository, when a new source containers are
                                    created.

    repositoryModule                (default) name of the module, when new source containers are
                                    created.

Future: 
    - keep track of per-project changes
    - allow speficiation of the type of the project (application or library)
    - allow building of whatever the target (as defined by the type) is
      (this will allow build of class libs and apps by clicking a button)
    - allow removal of project specific classes, methods etc.


Class protocol:

accessing
o  addKnownProject: aProject

o  addLoadedProject: aProject

o  current
return the currently active project

o  current: aProject
set the currently active project

o  currentPackageName

o  defaultNameSpace
return the default namespace, where new classes are installed,
if NO special nameSpace handler is present

o  defaultProject
return the SystemDefault project

o  knownProjects

o  loadedProjects

o  noProjectID

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  projectNamed: aProjectName
retrieve the named project; return nil if not known

o  projectWithId: aPackageId
retrieve the project with a particular id; return nil if not known

o  setDefaultProject
set the currently active project to be the SystemDEfault project

o  setProject: aProjectOrNil
set the currently active project without updating others

changes management
o  addClassCommentChangeFor: aClass
add a comment-change for aClass to the current project

o  addClassDefinitionChangeFor: aClass
add a class-def-change for aClass to the current project

o  addClassRemoveChange: oldClass
add a class-remove-change to the current project

o  addClassRenameChangeFrom: oldName to: newName
add a class-rename-change to the current project

o  addDoIt: aString
add a doIt to the current project

o  addInstVarDefinitionChangeFor: aClass
add an instvar-change for aClass to the current project

o  addMethodCategoryChange: aMethod category: newCategory in: aClass
add a method-category-change for aMethod in aClass to the current project

o  addMethodChange: aMethod fromOld: oldMethod in: aClass
add a method change in aClass to the current project

o  addMethodChange: aMethod in: aClass
add a method change in aClass to the current project

o  addMethodPackageChange: aMethod package: newPackage in: aClass
add a method-package-change for aMethod in aClass to the current project

o  addMethodPrivacyChange: aMethod in: aClass
add a privacy change for aMethod in aClass to the current project

o  addPrimitiveDefinitionsChangeFor: aClass
add a primitiveDef change for aClass to the current project

o  addPrimitiveFunctionsChangeFor: aClass
add a primitiveFuncs change for aClass to the current project

o  addPrimitiveVariablesChangeFor: aClass
add a primitiveVars change for aClass to the current project

o  addRemoveSelectorChange: aSelector fromOld: oldMethod in: aClass
add a method-remove change in aClass to the current project

o  addRenameCategoryChangeIn: aClass from: oldCategory to: newCategory
add a category rename change for aClass to the current project

o  currentProjectDirectory
return the name of the directory to use for fileOut.
The returned name already includes a file-separator at the end,
so the filename can be concatenated to it.

initialization
o  initKnownProjects
this is a temporary experimental kludge

o  initialize

o  initializeSystemProject

o  reinitKnownProjects
rescan the image for projects

instance creation
o  new


Instance protocol:

accessing
o  changeSet
return the set of changes made in this project

o  changeSet: aChangeSet
set the set of changes made in this project - dangerous, you may loose
the actual changeSet.

o  changedClasses

o  defaultNameSpace
return the defaultNameSpace of this project.
New classes will (if not specified by a directive) be installed
in this nameSpace. Useful, when filing in ST-80 code, to avoid
overwriting of standard classes.

o  defaultNameSpace: aNamespace
set the defaultNameSpace of this project.
New classes will (if not specified by a directive) be installed
in this nameSpace. Useful, when filing in ST-80 code, to avoid
overwriting of standard classes.

o  directory
return the projects directory.
If not specified, a fileOut will be done into that directory

o  directory: aDirectoryName
set the projects directory.
If not specified, a fileOut will be done into that directory

o  isLoaded: aBoolean

o  libraryName
return the projects library name.
This is the name of a classLibrary, created from this project

o  name
return the projects name.
This is for the user only - shown in the projectViews label

o  name: aString
set the projects name.
This is for the user only - shown in the projectViews label

o  package
return the projects package identifier.
This identifier marks all methods and new classes which are created
in this project.

o  package: aPackageId
set the projects package identifier.
This identifier marks all methods and new classes which are created
in this project.

o  repositoryDirectory
return the projects default repository location.
This is offered initially, when classes are checked into the
source repository initially

o  repositoryDirectory: aRelativePathName
set the projects default repository location.
This will be offered initially, when classes are checked into the
source repository initially

o  repositoryModule
return the projects default repository module name.
This is offered initially, when classes are checked into the
source repository initially

o  repositoryModule: aString
set the projects default repository module name.
This is offered initially, when classes are checked into the
source repository initially

o  views
return a collection of views which were opened in this project

o  views: aSetOfViews
set the collection of views which were opened in this project

administration
o  removeClassesFromSystem
remove the all of my classes & patches from the system

o  removeFromSystem
remove the project and all of its classes & patches from the
system

changes
o  addClassCommentChangeFor: aClass
add a comment-change for aClass to the receivers changeSet

o  addClassDefinitionChangeFor: aClass
add a class-def-change for aClass to the receivers changeSet

o  addClassRemoveChange: oldClass
add a class-remove-change to the current project

o  addClassRenameChangeFrom: oldName to: newName
add a class-rename-change to the current project

o  addDoIt: aString
add a doIt to the receivers changeSet

o  addInstVarDefinitionChangeFor: aClass
add an instvar-definition-change for aClass to the receivers changeSet

o  addMethodCategoryChange: aMethod category: newCategory in: aClass
add a method-category-change for aMethod in aClass to the receivers changeSet

o  addMethodChange: aMethod fromOld: oldMethod in: aClass
add a method change in aClass to the receivers changeSet

o  addMethodChange: aMethod in: aClass
add a method change in aClass to the receivers changeSet

o  addMethodPackageChange: aMethod package: newPackage in: aClass
add a method-package-change for aMethod in aClass to the receivers changeSet

o  addMethodPrivacyChange: aMethod in: aClass
add a privacy change for aMethod in aClass to the receivers changeSet

o  addPrimitiveDefinitionsChangeFor: aClass
add a primitiveDef change for aClass to the receivers changeSet

o  addPrimitiveFunctionsChangeFor: aClass
add a primitiveFuncs change for aClass to the receivers changeSet

o  addPrimitiveVariablesChangeFor: aClass
add a primitiveVars change for aClass to the receivers changeSet

o  addRemoveSelectorChange: aSelector fromOld: oldMethod in: aClass
add a method-remove change in aClass to the receivers changeSet

o  addRenameCategoryChangeIn: aClass from: oldCategory to: newCategory
add a category rename change in aClass to the receivers changeSet

o  condenseChangesForClassCheckin: aClass

o  condenseChangesForExtensionsCheckInInPackage: package

initialization
o  initialize

printing & storing
o  displayString

properties
o  addClass: classOrClassName
add a class to the project

o  addClass: classOrClassName classFileName: fileName
add a class to the project

o  addClass: classOrClassName conditionForInclusion: conditionBlock classFileName: fileName
add a class to the project

o  addClassInfo: newInfo
add a class info to the project

o  classInfo: aClassInfoCollection
set the class info of the project

o  properties
return the property dictionary

o  properties: p
set the property dictionary

o  propertyAt: aKey
return a property; the key is a symbol

o  propertyAt: aKey put: aValue
set a property; the key is a symbol

queries
o  areAllClassesLoaded
return true, if all classes of the package are loaded
(i.e. there are no autoloaded stubs present)

o  classInfo
return a classInfo collection of classes belonging to that project

o  classInfoFor: aClassOrClassName
return a classInfo for a particular class

o  classes
return a collection of classes belonging to that project.
This excludes any private classes.

o  includesClass: aClassOrClassName
return true, if a class is contained in the project

o  includesMethod: aMethod
return true, if the given method is contained in the project
(either as patch/extension or as class

o  includesMethodPatch: aMethod
return true, if the given method is contained in the project
as patch/extension

o  individualMethods
return a collection of individual methods belonging to that project,
only methods are returned which are not contained in the
projects class set.

o  isDefaultProject

o  isLoaded
return true, if all of this project-package has been loaded
into the system

o  methodInfo
return a methodInfo collection of methods belonging to that project

o  methods
return a collection of methods belonging to that project.
This excludes any methods which are already in my class-set.

views
o  addView: aView
add a view to this projects set of views

o  destroyViews
destroy all views of this project

o  hideViews
hide all views of this project

o  removeView: aView
remove a view from this projects set of views

o  showViews
show all views of this project


Private classes:

    ClassInfo
    MethodInfo


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