All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softicar.platform.common.core.java.classpath.linking.JavaClasspathLinkingValidatorResult Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.core.java.classpath.linking;

import com.softicar.platform.common.core.java.classes.analyzer.AnalyzedJavaClass;
import com.softicar.platform.common.core.java.classes.name.JavaClassName;
import com.softicar.platform.common.core.java.method.reference.JavaMethodReference;
import java.util.Collections;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class JavaClasspathLinkingValidatorResult {

	private final Map> missingClasses;
	private final Map> unresolvedMethodReferences;

	public JavaClasspathLinkingValidatorResult() {

		this.missingClasses = new TreeMap<>();
		this.unresolvedMethodReferences = new TreeMap<>();
	}

	public Map> getMissingClasses() {

		return Collections.unmodifiableMap(missingClasses);
	}

	public Map> getUnresolvedMethodReferences() {

		return Collections.unmodifiableMap(unresolvedMethodReferences);
	}

	void addMissingClass(JavaClassName missingClass, AnalyzedJavaClass referencingClass) {

		missingClasses.computeIfAbsent(missingClass, dummy -> new TreeSet<>()).add(referencingClass.getClassName());
	}

	void addUnresolvedMethodReference(JavaMethodReference methodReference, AnalyzedJavaClass referencingClass) {

		unresolvedMethodReferences.computeIfAbsent(methodReference, dummy -> new TreeSet<>()).add(referencingClass.getClassName());
	}

	@Override
	public String toString() {

		StringBuilder builder = new StringBuilder();

		for (Entry> entry: missingClasses.entrySet()) {
			builder.append(String.format("missing class: %s\n", entry.getKey()));
			for (JavaClassName referencingClass: entry.getValue()) {
				builder.append(String.format("\t%s\n", referencingClass));
			}
		}

		for (Entry> entry: unresolvedMethodReferences.entrySet()) {
			builder.append(String.format("unresolved method reference: %s\n", entry.getKey()));
			for (JavaClassName referencingClass: entry.getValue()) {
				builder.append(String.format("\t%s\n", referencingClass));
			}
		}

		return builder.toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy