eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'ProjectChecker':

Home

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

Class: ProjectChecker


Inheritance:

   Object
   |
   +--ProjectChecker

Package:
stx:libbasic3
Category:
System-Support-Projects
Version:
rev: 1.37 date: 2018/05/09 10:10:53
user: cg
file: ProjectChecker.st directory: libbasic3
module: stx stc-classLibrary: libbasic3
Author:
Jan Vrany <jan.vrany@fit.cvut.cz>

Description:


A simple project checker that can search whole projects or individual
classes or methods for various problems that may cause build problems,
such as:
    - inconsistent/messed up project definition class
    - method code problems

NOTE: this is not a lint. It only checks for inconsitent configuration
(projectDefinition class data vs. real data) and compilability (stc limitations).

NOTE: Not yet finished. This code is meant as a single central entry for all the
source code management tools like SCM Utilities, NewSystemBrowser ets. That code
will be refactored later once this tool prooves itself useful and mature enough.


[instance variables:]

[class variables:]


Related information:

    Tools::ProjectCheckerBrowser

Class protocol:

checking
o  check: package

instance creation
o  forPackage: packageId

o  new
return an initialized instance


Instance protocol:

accessing
o  checkExtensionsOnly: aBoolean

o  classes: aCollection

o  methods

o  methods: something

o  package: packageId
Adds `packageId` to set of checked packages

o  problems

checking
o  check

o  check: package

checks-individual
o  checkClassListConsistency
Checks whether all classes listed in #classNamesAndAttributes are present
and if all present classes are listed

o  checkClassesAutoloadedSuperclasse: aCollection
of Class

o  checkClassesForMethodsInNoProject: classesToCheck
Sigh, special hack for Expecco

o  checkClassesForNonQualifiedSharedPools: classesToCheck

o  checkClassesListedInProjectDefinition: classesToCheck

o  checkExtensionsListConsistency
Checks whether all extensions listed in #extensionMethodNames are present
and if all extension methods are listed.
Also check if any regular or extension method is also listed in some other package
(which may happen after a move, if the original package was not updated)

o  checkExtensionsPrerequisites
Checks whether packages of all extensions method classes are listed
in package prerequisites

o  checkMethodCodingStyle: method
Checks for various coding style violations such as 'self halt' or
improper indentation :-)

o  checkMethodSTCCompilability1: method into: problemIssue
Checks is the method can be compiled by STC based on Parser error/warnings

o  checkMethodSTCCompilability2: method into: problemIssue
Check if SmallLint is available...

o  checkMethodSTCCompilability: method
Checks is the method can be compiled by STC (since STC won't compile
everything bytecode compiler/jit compiler does, sigh

o  checkMethodSourceCode: method
Checks, whether method's source code is both
available and parseable. Return true if the code
is syntactically correct, false otherwise

o  checkSubProjects
Checks whether all subprojects listed in #subprojects are present.

checks-private
o  checkClasses

o  checkClasses: classesToCheck

o  checkMethod: method
OK, method's source code is fine, perform more checks on

o  checkMethods
isExtension

o  checkMethods: methodsToCheck

o  checkPackage
add more here...

initialization
o  initialize
Invoked when a new instance is created.
usage example(s):
super initialize.   -- commented since inherited method does nothing

reporting
o  addProblem: aProjectProblem


Examples:


ProjectChecker check: 'stx:libbasic' ProjectChecker check: 'stx:libtool' ProjectChecker check: 'stx:libbasic3'

ST/X 7.1.0.0; WebServer 1.663 at exept.de:8081; Sat, 17 Nov 2018 09:13:21 GMT