public void enlist()

in com.microsoft.java.lsif.core/src/com/microsoft/java/lsif/core/internal/visitors/DiagnosticVisitor.java [47:86]


	public void enlist() {
		LsifService lsif = this.getLsif();
		Document docVertex = this.getContext().getDocVertex();
		IResource resource = this.getContext().getCompilationUnit().getJavaElement().getResource();
		if (resource == null || !resource.exists()) {
			LanguageServerIndexerPlugin.logError("Cannot find resource for: "
					+ this.getContext().getCompilationUnit().getJavaElement().getElementName());
			return;
		}
		IMarker[] markers = null;
		IDocument document = null;
		try {
			IMarker[] javaMarkers = resource.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, false,
					IResource.DEPTH_ONE);
			IMarker[] taskMarkers = resource.findMarkers(IJavaModelMarker.TASK_MARKER, false, IResource.DEPTH_ONE);
			int totalLength = javaMarkers.length + taskMarkers.length;
			if (totalLength == 0) {
				return;
			}
			markers = Arrays.copyOf(javaMarkers, javaMarkers.length + taskMarkers.length);
			System.arraycopy(taskMarkers, 0, markers, javaMarkers.length, taskMarkers.length);
			document = JsonRpcHelpers
					.toDocument(this.getContext().getCompilationUnit().getJavaElement().getOpenable().getBuffer());
		} catch (Throwable ex) {
			LanguageServerIndexerPlugin.logException("Exception when dumping diagnostic information ", ex);
			return;
		}

		if (document == null) {
			LanguageServerIndexerPlugin
					.logError("Cannot parse the document for: "
							+ this.getContext().getCompilationUnit().getJavaElement().getElementName());
			return;
		}

		List<Diagnostic> diagnostics = toDiagnosticsArray(document, markers);
		DiagnosticResult diagnosticResult = lsif.getVertexBuilder().diagnosticResult(diagnostics);
		LsifEmitter.getInstance().emit(diagnosticResult);
		LsifEmitter.getInstance().emit(lsif.getEdgeBuilder().diagnostic(docVertex, diagnosticResult));
	}