Exemple #1
0
class ClassUsageDictionaryBuilder(NamespaceUsageDictionaryBuilder):
    def __init__(self, namespaceFileName):
        self.namespaceFileName = namespaceFileName
        self.namespaceDict = ClassUsageDictionary()

    ##
    # Create a ClassUsageEntity for the
    # self.currentLine.
    ##
    def buildCurrentEntity(self):
        added = False
        self.currentEntity = None

        if isValidClassUsageLine(self.currentLine):
            self.currentEntity = ClassUsageEntity(self.currentLine)
            added = self.namespaceDict.add(self.currentEntity)

        return added

    ##
    # Mark for each class usage reference whether it is surrounded by a namespace
    # or not. By calculating this information beforehand, verifications of
    # transitively included class usages can be made less expensive.
    ##
    def refineDictWithNamespaceInfo(self, namespaceContainmentChecker):
        for classUsageRef in self.namespaceDict.getAllReferences():
            srcLoc = classUsageRef.getSourceLocation()
            parentNamespaceName = namespaceContainmentChecker.getSurroundingNamespaceName(
                srcLoc)
            classUsageRef.setParentNamespaceName(parentNamespaceName)
class ClassUsageDictionaryBuilder(NamespaceUsageDictionaryBuilder):
	def __init__(self, namespaceFileName):
		self.namespaceFileName = namespaceFileName
		self.namespaceDict = ClassUsageDictionary()

	##
	# Create a ClassUsageEntity for the
	# self.currentLine.
	##
	def buildCurrentEntity(self):
		added = False
		self.currentEntity = None

		if isValidClassUsageLine(self.currentLine):
			self.currentEntity = ClassUsageEntity(self.currentLine)
			added = self.namespaceDict.add(self.currentEntity)

		return added

	##
	# Mark for each class usage reference whether it is surrounded by a namespace
	# or not. By calculating this information beforehand, verifications of
	# transitively included class usages can be made less expensive.
	##
	def refineDictWithNamespaceInfo(self, namespaceContainmentChecker):
		for classUsageRef in self.namespaceDict.getAllReferences():
			srcLoc = classUsageRef.getSourceLocation()
			parentNamespaceName = namespaceContainmentChecker.getSurroundingNamespaceName(srcLoc)
			classUsageRef.setParentNamespaceName(parentNamespaceName)
Exemple #3
0
 def __init__(self, includeDict, namespaceContainmentChecker, \
    namespaceUsageChecker,\
    classUsageChecker=ClassUsageChecker(ClassUsageDictionary())):
     self.transIncludeDict = TransitiveIncludeDictionary(includeDict)
     self.namespaceContainmentChecker = namespaceContainmentChecker
     self.namespaceUsageChecker = namespaceUsageChecker
     self.classUsageChecker = classUsageChecker
     self.transInhDict = TransitiveInheritanceDictionary(
         InheritanceDictionary())
Exemple #4
0
 def __init__(self, namespaceFileName):
     self.namespaceFileName = namespaceFileName
     self.namespaceDict = ClassUsageDictionary()
	def __init__(self, namespaceFileName):
		self.namespaceFileName = namespaceFileName
		self.namespaceDict = ClassUsageDictionary()
Exemple #6
0
log.info("Entering famix Level 1")
namespaceDbLoc = dbLoc + ".namespaces"
clDbLoc = dbLoc + ".classes"
miDbLoc = dbLoc + ".methods"
mdDbLoc = dbLoc + ".methoddefs"
inDbLoc = dbLoc + ".inheritance"
fuDbLoc = dbLoc + ".functions"
fdDbLoc = dbLoc + ".functiondefs"
DataReqs.checkfamixL1Reqs(sys.argv[1] + "/" + sys.argv[2])

# default initialization
namespaceContainmentChecker = NamespaceContainmentChecker(
    NamespaceDictionary())
namespaceUsageContainmentChecker = NamespaceContainmentChecker(
    NamespaceUsageDictionary())
classUsageContainmentChecker = ClassUsageChecker(ClassUsageDictionary())

if os.path.exists(namespaceDbLoc):
    log.info("	Parsing namespaces...")
    namespaceDict = snavTableReader.parseNamespaces(namespaceDbLoc)
    namespaceContainmentChecker = NamespaceContainmentChecker(namespaceDict)
    log.info("Parsed " + ` namespaceDict.getNumberOfEntities() ` +
             " namespaces")

    log.info("	Parsing namespace usages...")
    namespaceUsageDict = snavTableReader.parseNamespaceUsages(namespaceDbLoc)
    namespaceUsageContainmentChecker = NamespaceContainmentChecker(
        namespaceUsageDict)
    log.info("Parsed " + ` namespaceUsageDict.getNumberOfEntities() ` +
             " namespace usages")