Source Code (Use browser search to find items of interest.)
Class Index
kdevelop'CParsedClassContainer (./kdevelop/kdevelop/classparser/ParsedClassContainer.h:30)
class CParsedClassContainer : public CParsedContainer
{
public: // Constructor & Destructor
CParsedClassContainer();
~CParsedClassContainer();
protected: // Private attributes
/** All parsed classes. */
QDict<CParsedClass> classes;
public: // Public attributes
/** Iterator for the classes */
QDictIterator<CParsedClass> classIterator;
public: // Public queries
/** Returns the number of parsed classes. */
int classCount() { return classIterator.count(); }
/** Tells if a class exists in the store.
* @param aName Classname to check if it exists.
*/
bool hasClass( const char *aName );
/** Fetches a class from the store by using its' name.
* @param aName Name of the class to fetch.
* @return A pointer to the class(not to be deleted) or
* NULL if the class wasn't found.
*/
CParsedClass *getClassByName( const char *aName );
/** Get all classes in sorted order.
* @return A list of all classes in alpabetical order.
*/
QList<CParsedClass> *getSortedClassList();
/** Get all classes referencing(==declared in) a certain file.
* @param aFile File to look for.
* @returns A list of classnames.
*/
QList<CParsedClass> *getClassesReferencingFile( const char *aFile );
/** Get all classnames in sorted order.
* @return A list of all classnames in sorted order.
*/
QStrList *getSortedClassNameList();
public: // Public Methods
/** Remove all items in the store with references to the file.
* @param aFile The file to check references to.
*/
void removeWithReferences( const char *aFile );
/** Add a classdefintion.
* @param aClass Class to add.
*/
void addClass( CParsedClass *aClass );
/** Store a subclass pointer using its' hierarchy as the key.
* @param key The hierarchy.
* @param aClass The childclass to store.
*/
void addSubClass( const char *key, CParsedClass *aClass );
/** Remove a class from the store.
* @param aName Name of the class to remove
*/
void removeClass( const char *aName );
/** Clear the internal state. */
void clear();
};
#include "ParsedClass.h"
kdevelop'CParsedClassContainer::CParsedClassContainer() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:36)
CParsedClassContainer::CParsedClassContainer()
: classIterator( classes )
{
classes.setAutoDelete( true );
}
/*------------------- CParsedClassContainer::~CParsedClassContainer()
* ~CParsedClassContainer()
* Destructor.
*
* Parameters:
* -
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::~CParsedClassContainer() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:51)
CParsedClassContainer::~CParsedClassContainer()
{
}
/*********************************************************************
* *
* PUBLIC METHODS *
* *
********************************************************************/
/*------------------------------------- CParsedClassContainer::clear()
* clear()
* Clear the internal state.
*
* Parameters:
* -
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::clear() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:70)
void CParsedClassContainer::clear()
{
CParsedContainer::clear();
classes.clear();
}
/*--------------------------------- CParsedClassContainer::addClass()
* addClass()
* Add a class to the store.
*
* Parameters:
* aClass The class to add.
*
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::addClass() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:87)
void CParsedClassContainer::addClass( CParsedClass *aClass )
{
assert( aClass != NULL );
assert( !aClass->name.isEmpty() );
assert( !hasClass( aClass->name ) );
classes.insert( aClass->name, aClass );
}
/*------------------------------- CParsedClassContainer::addSubClass()
* addSubClass()
* Store a subclass pointer using its' hierarchy as the key.
*
* Parameters:
* key The hierarchy.
* aClass The subclass to store.
*
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::addSubClass() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:107)
void CParsedClassContainer::addSubClass( const char *key,
CParsedClass *aClass )
{
assert( aClass != NULL );
assert( !aClass->name.isEmpty() );
assert( key != NULL );
classes.insert( key, aClass );
}
/*------------------------------ CParsedClassContainer::removeClass()
* removeClass()
* Remove a class from the store.
*
* Parameters:
* aName Name of the class to remove
*
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::removeClass() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:127)
void CParsedClassContainer::removeClass( const char *aName )
{
assert( aName != NULL );
assert( strlen( aName ) > 0 );
assert( hasClass( aName ) );
classes.remove( aName );
}
/*---------------------- CParsedClassContainer::removeWithReferences()
* removeWithReferences()
* Remove all items in the store with references to the file.
*
* Parameters:
* aFile The file.
*
* Returns:
* -
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::removeWithReferences() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:146)
void CParsedClassContainer::removeWithReferences( const char *aFile )
{
CParsedContainer::removeWithReferences( aFile );
}
/*********************************************************************
* *
* PUBLIC QUERIES *
* *
********************************************************************/
/*--------------------------------- CParsedClassContainer::hasClass()
* hasClass()
* Tells if a class exist in the store.
*
* Parameters:
* aName Name of the class to check.
*
* Returns:
* bool Result of the lookup.
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::hasClass() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:167)
bool CParsedClassContainer::hasClass( const char *aName )
{
return classes.find( aName ) != NULL;
}
/*---------------------------- CParsedClassContainer::getClassByName()
* getClassByName()
* Get a class or subclass from the container by using its' name.
*
* Parameters:
* aName Name of the class to fetch.
*
* Returns:
* CParsedClass * The class we looked for.
* NULL Otherwise.
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::getClassByName() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:183)
CParsedClass *CParsedClassContainer::getClassByName( const char *aName )
{
assert( aName != NULL );
CParsedClass *aClass;
aClass = classes.find( aName );
return aClass;
}
/*------------------------ CParsedClassContainer::getSortedClassList()
* getSortedClassList()
* Get all classes in sorted order.
*
* Parameters:
* -
* Returns:
* QList<CParsedClass> * The classes.
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::getSortedClassList() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:203)
QList<CParsedClass> *CParsedClassContainer::getSortedClassList()
{
QList<CParsedClass> *retVal = new QList<CParsedClass>();
QStrList srted;
char *str;
retVal->setAutoDelete( false );
// Ok... This sucks. But I'm lazy.
for( classIterator.toFirst();
classIterator.current();
++classIterator )
{
// Only add non-subclasses.
if( !classIterator.current()->isSubClass() )
srted.inSort( classIterator.current()->name );
}
for( str = srted.first();
str != NULL;
str = srted.next() )
{
retVal->append( getClassByName( str ) );
}
return retVal;
}
/*-------------------- CParsedClassContainer::getSortedClassNameList()
* getSortedClassNameList()
* Get all classnames in sorted order.
*
* Parameters:
* -
* Returns:
* QStrList * The classnames.
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::getSortedClassNameList() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:240)
QStrList *CParsedClassContainer::getSortedClassNameList()
{
QStrList * retVal = new QStrList();
// Iterate over all classes in the store.
for( classIterator.toFirst();
classIterator.current();
++classIterator )
{
// Only add non-subclasses.
if( !classIterator.current()->isSubClass() )
retVal->inSort( classIterator.current()->name );
}
return retVal;
}
/*----------------- CParsedClassContainer::getClassesReferencingFile()
* getClassesReferencingFile()
* Get all classes referencing(==declared in) a certain file.
*
* Parameters:
* aFile File to look for.
* Returns:
* QList<CParsedClass> * The classes.
*-----------------------------------------------------------------*/
kdevelop'CParsedClassContainer::getClassesReferencingFile() (./kdevelop/kdevelop/classparser/ParsedClassContainer.cc:266)
QList<CParsedClass> *CParsedClassContainer::getClassesReferencingFile( const char *aFile )
{
QList<CParsedClass> *retVal = new QList<CParsedClass>;
retVal->setAutoDelete( false );
// Iterate over all classes in the store.
for( classIterator.toFirst();
classIterator.current();
++classIterator )
{
if( classIterator.current()->isSubClass() &&
classIterator.current()->declaredInFile == aFile )
retVal->append( classIterator.current() );
}
return retVal;
}