package org.bundlemaker.core.osgi.utils; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import org.bundlemaker.core.analysis.IAnalysisModelVisitor; import org.bundlemaker.core.analysis.IBundleMakerArtifact; import org.bundlemaker.core.analysis.IGroupAndModuleContainer; import org.bundlemaker.core.analysis.IModuleArtifact; import org.bundlemaker.core.analysis.IPackageArtifact; import org.bundlemaker.core.resource.IModule; import org.eclipse.core.runtime.Assert; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class ArtifactUtils { /** * <p> * </p> * * @param artifact * @param module * @return */ public static IModuleArtifact getAssociatedModuleArtifact(final IGroupAndModuleContainer artifact, final IModule module) { // Assert.isNotNull(artifact); Assert.isNotNull(module); // final IModuleArtifact[] result = new IModuleArtifact[1]; // artifact.accept(new IAnalysisModelVisitor.Adapter() { @Override public boolean visit(IModuleArtifact moduleArtifact) { // if (module.equals(moduleArtifact.getAssociatedModule())) { result[0] = moduleArtifact; } // return false; } }); // return result[0]; } /** * <p> * </p> * * @param artifact * @return */ public static List<IModuleArtifact> getAllChildModules(final IGroupAndModuleContainer artifact) { // Assert.isNotNull(artifact); // final List<IModuleArtifact> result = new LinkedList<IModuleArtifact>(); // artifact.accept(new IAnalysisModelVisitor.Adapter() { @Override public boolean visit(IModuleArtifact moduleArtifact) { // result.add(moduleArtifact); // return false; } }); // return result; } /** * <p> * </p> * * @param artifact * @return */ public static List<IPackageArtifact> getAllChildPackages(final IBundleMakerArtifact artifact) { // Assert.isNotNull(artifact); // final List<IPackageArtifact> result = new LinkedList<IPackageArtifact>(); // artifact.accept(new IAnalysisModelVisitor.Adapter() { @Override public boolean visit(IPackageArtifact packageArtifact) { // result.add(packageArtifact); // return true; } }); Collections.sort(result, new Comparator<IPackageArtifact>() { @Override public int compare(IPackageArtifact package1, IPackageArtifact package2) { return package1.getQualifiedName().compareTo(package2.getQualifiedName()); } }); // return result; } }