eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ProjectProblem':

Home

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

Class: ProjectProblem


Inheritance:

   Object
   |
   +--ProjectProblem
      |
      +--ProjectProblem::ClassProblem
      |
      +--ProjectProblem::InvalidPackageName
      |
      +--ProjectProblem::ProjectDefinitionDoesNotExist

Package:
stx:libbasic3
Category:
System-Support-Projects
Version:
rev: 1.65 date: 2019/07/10 16:32:03
user: cg
file: ProjectProblem.st directory: libbasic3
module: stx stc-classLibrary: libbasic3

Description:


I represent a problem as detected by the project consistency checker,
which is optionally executed before committing a package to a repository.
Typically, I find inconsistencies, uncompilable methods or missing prerequisites,
which might lead to trouble when the package is later to be compiled to a dll via stc.

[instance variables:]
    package         - the package in question

    fixes           - a collection of possible fixes
                      (to be shown in the HTML view of the problem browser)

    allProblems     - the collection of problems I am part of
                      (only needed to be able to do the 
                       'fix other problems of this kind' operation,
                       for example in the MethodOnNoPackage problem.)


Related information:

    ProjectChecker
    ProjectDefinition

Class protocol:

instance creation
o  newClass: aClass usesPoolButItDoesNotExist: poolName

o  newClassIsCompiledButSuperclassIsAutoloaded

o  newClassIsCompiledButSuperclassProjectDefinitionIsMissing

o  newClassListedBeforeItsPool

o  newClassListedBeforeItsSuperclass

o  newClassListedBeforeItsSuperclass: aClass

o  newClassListedButDoesNotExist

o  newClassListedButInOtherPackage

o  newClassListedMultipleTimes

o  newClassListedMultipleTimes: aClass

o  newClassNotListed

o  newClassShouldNotBeInPackage

o  newClassUsesPoolButItDoesNotExist

o  newClassUsesPoolButItIsNotASharedPool

o  newClassUsesPoolInNamespaceButNamespaceIsNotDefined

o  newExtensionMethodListedButDoesNotExist

o  newExtensionMethodListedButInDifferentPackage

o  newExtensionMethodNotListed

o  newExtensionMethodsClassDoesNotExist

o  newInvalidPackageName

o  newMethodCompilabilityIssue1

o  newMethodCompilabilityIssue2

o  newMethodInNoPackage

o  newMethodListedInOtherPackage

o  newMethodSourceCorrupted

o  newMethodSourceNotAvailable

o  newProjectDefinitionDoesNotExist


Instance protocol:

accessing
o  allProblems: something

o  countOtherProblemsOfThisKind

o  description
Return a (HTML) describing the problem.

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

o  descriptionAndFixes
Return a (HTML) describing the problem plus possible fixes.

o  klass
Return the class which is subject of the problem.
To be redefined in problems which are class-related

o  label
Return the label (possibly instance if a Text) shortly describing the problem

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

o  package

o  package: aSymbol

o  packageDefinitionClass

o  severity
Return a severity - one of #error, #warning, #info

fixing
o  allUnfixedProblemsOfMyKindDo: aBlock

o  alreadyFixed

o  doFix: index

o  fixes
Return (possibly empty) list of description-action pairs that
the user may take to fix/investigate the problem.
Returned value should be list of pairs (label, action block).
To be overriden in subclasses.

The list should be an array of pairs ( fix label , fix block ).
Fix block should return true, if the fix was successful,
false otherwise

initialization
o  initializeFixes
super initialize. -- commented since inherited method does nothing

printing & storing
o  displayOn: aGCOrStream
what a kludge - Dolphin and Squeak mean: printOn: a stream;

o  printOn: aStream
append a printed representation of the receiver to the argument, aStream

utilities-HTML
o  linkToClass: classOrclassName

o  linkToClass: classOrclassName selector: selector

o  linkToClass: classOrclassName selector: selector omitClassName: omitClassName

o  linkToPackage: packageId


Private classes:

    ClassIsCompiledButSuperclassIsAutoloaded
    ClassIsCompiledButSuperclassProjectDefinitionIsMissing
    ClassListedBeforeItsPool
    ClassListedBeforeItsSuperclass
    ClassListedButDoesNotExist
    ClassListedButInOtherPackage
    ClassListedMultipleTimes
    ClassNotListed
    ClassProblem
    ClassShouldNotBeInPackage
    ClassUsesPoolButItDoesNotExist
    ClassUsesPoolButItIsNotASharedPool
    ClassUsesPoolInNamespaceButNamespaceIsNotDefined
    ClassUsesPoolProblem
    ExtensionMethodListedButDoesNotExist
    ExtensionMethodListedButInDifferentPackage
    ExtensionMethodNotListed
    ExtensionMethodsClassDoesNotExist
    InconsistentProjectDefinition
    InvalidPackageName
    MethodCompilabilityIssue1
    MethodCompilabilityIssue2
    MethodInNoPackage
    MethodListedInOtherPackage
    MethodProblem
    MethodSourceCorrupted
    MethodSourceNotAvailable
    ProjectDefinitionDoesNotExist


ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Fri, 29 Mar 2024 01:41:03 GMT