com.softicar.platform.common.core.java.classes.analyzer.IAnalyzedJavaClassProvider 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.classes.analyzer;
import com.softicar.platform.common.core.java.classes.name.JavaClassName;
import java.util.Optional;
/**
* Finds {@link AnalyzedJavaClass} instances by {@link JavaClassName} instances.
*
* @author Alexander Schmidt
*/
public interface IAnalyzedJavaClassProvider {
/**
* Returns the {@link AnalyzedJavaClass} for the given
* {@link JavaClassName}.
*
* @param className
* the {@link JavaClassName} to fetch an
* {@link AnalyzedJavaClass} for (never null)
* @return the corresponding {@link AnalyzedJavaClass}
*/
Optional getAnalyzedClass(JavaClassName className);
/**
* Returns the {@link AnalyzedJavaClass} for the given
* {@link JavaClassName}.
*
* Returns null if no corresponding {@link AnalyzedJavaClass} can be
* found.
*
* @param className
* the {@link JavaClassName} to fetch an
* {@link AnalyzedJavaClass} for (never null)
* @return the corresponding {@link AnalyzedJavaClass} (may be null)
*/
default AnalyzedJavaClass getAnalyzedClassOrNull(JavaClassName className) {
return getAnalyzedClass(className).orElse(null);
}
}