
io.github.mianalysis.mia.moduledependencies.Dependency Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mia-core Show documentation
Show all versions of mia-core Show documentation
ModularImageAnalysis (MIA) is an ImageJ plugin which provides a modular framework for assembling image and object analysis workflows. Detected objects can be transformed, filtered, measured and related. Analysis workflows are batch-enabled by default, allowing easy processing of high-content datasets.
package io.github.mianalysis.mia.moduledependencies;
import org.scijava.plugin.SciJavaPlugin;
import org.scijava.util.VersionUtils;
public abstract class Dependency implements SciJavaPlugin {
public enum Relationship {
LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN, NOT_EQUAL_TO;
}
public abstract String getModuleName();
public abstract String getMessage();
public abstract String getClassName();
public abstract String getVersionThreshold();
public abstract Relationship getRelationship();
public boolean test() {
Class> dependencyClass = null;
try {
dependencyClass = Class.forName(getClassName());
} catch (ClassNotFoundException e) {
return false;
}
int comparison = VersionUtils.compare(dependencyClass.getPackage().getImplementationVersion(),
this.getVersionThreshold());
switch (getRelationship()) {
case LESS_THAN:
return comparison < 0;
case LESS_THAN_OR_EQUAL_TO:
return comparison <= 0;
case EQUAL_TO:
return comparison == 0;
case GREATER_THAN_OR_EQUAL_TO:
return comparison >= 0;
case GREATER_THAN:
return comparison > 0;
case NOT_EQUAL_TO:
return comparison != 0;
}
return false;
}
static String getSymbol(Relationship relationship) {
switch (relationship) {
default:
return "";
case LESS_THAN:
return "<";
case LESS_THAN_OR_EQUAL_TO:
return "<=";
case EQUAL_TO:
return "==";
case GREATER_THAN_OR_EQUAL_TO:
return ">=";
case GREATER_THAN:
return ">";
case NOT_EQUAL_TO:
return "!=";
}
}
@Override
public String toString() {
String shortName = getClassName().substring(getClassName().lastIndexOf(".")+1);
return shortName + " " + getSymbol(getRelationship()) + " " + getVersionThreshold();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy