Questions
zhuzhujulie opened this issue · 3 comments
Hi, dear author,I'm Julie.
in the implemention of"wildcardNamespaceCollector.java", what's the function and relations of "libFolder", "exampleFolder" and "corpusFolder"?
Hi Julie,
The WildcardNamespaceCollector
is a best-effort attempt to resolve wildcard imports. As described in the dataset section on p. 8 of our paper, we use two file sets: the client file set and the example file set. All that WildcardNamespaceCollector
does is look for wildcard imports in the example and client file sets and search relevant projects in the GitHub Java corpus to see if it can resolve them.
To this end, libFolder
is the location of the client file set, exampleFolder
is the location of the example file set and corpusFolder
is the location of the GitHub Java corpus (see http://groups.inf.ed.ac.uk/cup/javaGithub/).
Thank you dear author, your answer does help me.
Now i can run WildcardNamespaceCollector.java normaly.
and i want to ask that, in the file of "APICallExtractor", you want to use the namespace folder to complement the import information in the java libraries, why do you need a array of "packageNames", what is it for?
Yes that's right, APICallExtractor
extracts the API calls for each of the packages listed in the packageNames
array (i.e. netty, hadoop, etc) and saves them to a corresponding .arff
file (i.e. netty.arff, hadoop.arff, etc - you can see examples of these files in the datasets/calls
folder). However, there's no reason why you can't run APICallExtractor
for a single packageName and projFolder, e.g. if you just want the API calls for netty.