in com.microsoft.java.lsif.core/src/com/microsoft/java/lsif/core/internal/visitors/SymbolData.java [272:306]
synchronized public void resolveMoniker(LsifService lsif, IJavaElement element, int modifier,
boolean hasPackageInformation) throws JavaModelException {
if (this.monikerResolved) {
return;
}
IJavaProject javaProject = element.getJavaProject();
IClassFile cf = (IClassFile) element.getAncestor(IJavaElement.CLASS_FILE);
MonikerKind monikerKind = resolveMonikerKind(cf, modifier);
String manager = resolveManager(cf, monikerKind, javaProject, hasPackageInformation);
String identifier = this.getJDTMonikerIdentifier(element);
if (StringUtils.isEmpty(identifier)) {
return;
}
switch (monikerKind) {
case IMPORT:
ImportPackageMetaData metaData = generateImportMonikerData(lsif, cf, manager, javaProject);
if (metaData == null || StringUtils.isEmpty(metaData.packageName) || StringUtils.isEmpty(metaData.version)) {
return;
}
generateImportMoniker(lsif, identifier, manager, metaData.packageName, metaData.version,
metaData.type, metaData.url);
break;
case EXPORT:
generateExportMoniker(lsif, identifier, manager, javaProject.getPath().toString());
break;
case LOCAL:
generateLocalMoniker(lsif, identifier);
break;
default:
}
this.monikerResolved = true;
}