You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.8 KiB
Groovy
86 lines
1.8 KiB
Groovy
package org.xbib.gradle.plugin.shadow.internal
|
|
|
|
class Clazz implements Comparable<Clazz> {
|
|
|
|
private final Set<Clazz> dependencies = new HashSet<Clazz>()
|
|
|
|
private final Set<Clazz> references = new HashSet<Clazz>()
|
|
|
|
private final Set<ClazzpathUnit> units = new HashSet<ClazzpathUnit>()
|
|
|
|
private final String name
|
|
|
|
Clazz( final String pName ) {
|
|
name = pName;
|
|
}
|
|
|
|
String getName() {
|
|
name
|
|
}
|
|
|
|
void addClazzpathUnit(ClazzpathUnit pUnit ) {
|
|
units.add(pUnit)
|
|
}
|
|
|
|
void removeClazzpathUnit( ClazzpathUnit pUnit ) {
|
|
units.remove(pUnit)
|
|
}
|
|
|
|
Set<ClazzpathUnit> getClazzpathUnits() {
|
|
units
|
|
}
|
|
|
|
void addDependency( final Clazz pClazz ) {
|
|
pClazz.references.add(this)
|
|
dependencies.add(pClazz)
|
|
}
|
|
|
|
public void removeDependency( final Clazz pClazz ) {
|
|
pClazz.references.remove(this)
|
|
dependencies.remove(pClazz)
|
|
}
|
|
|
|
Set<Clazz> getDependencies() {
|
|
return dependencies
|
|
}
|
|
|
|
Set<Clazz> getReferences() {
|
|
return references
|
|
}
|
|
|
|
Set<Clazz> getTransitiveDependencies() {
|
|
final Set<Clazz> all = new HashSet<Clazz>();
|
|
findTransitiveDependencies(all);
|
|
return all;
|
|
}
|
|
|
|
void findTransitiveDependencies( final Set<? super Clazz> pAll ) {
|
|
for (Clazz clazz : dependencies) {
|
|
if (!pAll.contains(clazz)) {
|
|
pAll.add(clazz)
|
|
clazz.findTransitiveDependencies(pAll)
|
|
}
|
|
}
|
|
}
|
|
|
|
boolean equals( final Object pO ) {
|
|
if (pO.getClass() != Clazz.class) {
|
|
return false
|
|
}
|
|
Clazz c = (Clazz) pO
|
|
name.equals(c.name)
|
|
}
|
|
|
|
int hashCode() {
|
|
name.hashCode()
|
|
}
|
|
|
|
int compareTo( final Clazz pO ) {
|
|
name.compareTo(((Clazz) pO).name)
|
|
}
|
|
|
|
String toString() {
|
|
name
|
|
}
|
|
}
|