com.softicar.platform.common.core.java.classpath.linking.JavaClasspathLinkingValidatorResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
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();
}
}