![JAR search and dependency download from the Maven repository](/logo.png)
jsclassloader.dependency.ClassNode Maven / Gradle / Ivy
package jsclassloader.dependency;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class ClassNode
{
private Map runtimeDependencies;
private Map staticDependencies;
private ClassNode() {
runtimeDependencies = new HashMap();
staticDependencies = new HashMap();
}
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
private boolean processed;
public boolean isProcessed() {
return processed;
}
public void setProcessed(boolean processed) {
this.processed = processed;
}
public ClassNode(String value)
{
this();
this.value = value;
}
public Collection getRunTimeDependencies()
{
return runtimeDependencies.values();
}
public Collection getStaticDependencies()
{
return staticDependencies.values();
}
public void addDependency(ClassNode classNode, boolean isStatic) {
String className = classNode.getValue();
if (isStatic) {
if (this.staticDependencies.get(className) == null) {
//if it was a static but is now a runtime dep, move it from runtime to static.
if (this.runtimeDependencies.get(className) != null) {
this.staticDependencies.put(className, this.runtimeDependencies.get(className));
this.runtimeDependencies.remove(className);
}
else {
addStaticDependency(classNode);
}
}
}
else {
if (this.runtimeDependencies.get(className) == null
&& this.staticDependencies.get(className) == null) {
addRuntimeDependency(classNode);
}
}
}
public void addStaticDependency(ClassNode classNode) {
staticDependencies.put(classNode.getValue(), classNode);
}
public void addRuntimeDependency(ClassNode classNode) {
runtimeDependencies.put(classNode.getValue(), classNode);
}
public boolean hasRuntimeDependency(String className) {
return runtimeDependencies.containsKey(className);
}
public boolean hasStaticDependency(String className) {
return staticDependencies.containsKey(className);
}
public boolean hasDependency(String value) {
if (hasStaticDependency(value)) {
return true;
}
return hasRuntimeDependency(value);
}
@Override
public boolean equals(Object obj) {
if (((ClassNode)obj).getValue().equals(getValue())) {
return true;
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy