package org.bundlemaker.core.itestframework.utils;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import org.bundlemaker.core.analysis.IBundleMakerArtifact;
import org.bundlemaker.core.analysis.IDependency;
/**
* <p>
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class ArtifactTestUtil {
/**
* <p>
* </p>
*
* @param module
* @return
*/
public static String toString(IBundleMakerArtifact root) {
StringBuilder builder = new StringBuilder();
toString(root, builder, 0);
List<IDependency> dependencies = BundleMakerTestUtils.asSortedList(root.getDependenciesTo(),
new Comparator<IDependency>() {
@Override
public int compare(IDependency o1, IDependency o2) {
String dep1 = dumpDependency(o1);
String dep2 = dumpDependency(o2);
return dep1.compareTo(dep2);
}
});
for (IDependency dependency : dependencies) {
builder.append(dumpDependency(dependency));
builder.append("\n");
}
return builder.toString();
}
/**
* <p>
* </p>
*
* @param root
* @param stringBuilder
*/
private static void toString(IBundleMakerArtifact artifact, StringBuilder builder, int offset) {
//
for (int i = 0; i < offset; i++) {
builder.append(" ");
}
//
builder.append(artifact.getClass().getName());
builder.append(" : ");
builder.append(artifact.getQualifiedName());
builder.append("\n");
//
List<? extends IBundleMakerArtifact> children = BundleMakerTestUtils.asSortedList((Collection<IBundleMakerArtifact>)artifact.getChildren(), new Comparator<IBundleMakerArtifact>() {
@Override
public int compare(IBundleMakerArtifact o1, IBundleMakerArtifact o2) {
return o1.getQualifiedName().compareTo(o2.getQualifiedName());
}
});
for (IBundleMakerArtifact child : children) {
toString(child, builder, offset + 1);
}
}
/**
* <p>
* </p>
*/
public static String dumpDependency(IDependency iDependency) {
return iDependency.getFrom().getQualifiedName() + " -- " + iDependency.getDependencyKind() + " ["
+ iDependency.getWeight() + "]" + " --> " + iDependency.getTo().getQualifiedName();
}
}