synchronized public void resolveMoniker()

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;
	}