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)