package org.bundlemaker.core.itestframework.utils; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; import org.bundlemaker.core.common.ResourceType; import org.bundlemaker.core.jtype.IReference; import org.bundlemaker.core.jtype.IType; import org.bundlemaker.core.jtype.ITypeResource; import org.bundlemaker.core.project.IProjectContentEntry; import org.bundlemaker.core.project.IProjectContentResource; import org.bundlemaker.core.resource.IModularizedSystem; import org.bundlemaker.core.resource.IModule; import org.bundlemaker.core.resource.IModuleResource; public class ModuleUtils { public static final String dump(IModule module) { IModularizedSystem modularizedSystem = module.getModularizedSystem(); StringBuilder builder = new StringBuilder(); builder.append(module.getModuleIdentifier().toString() + "\n"); builder.append("\n"); builder.append("Source-Content: \n"); for (IProjectContentResource resource : asSortedList((Set<IProjectContentResource>)module.getResources(ResourceType.SOURCE))) { builder.append(resource.getPath() + "\n"); for (IReference reference : asSortedList(resource.adaptAs(ITypeResource.class).getReferences())) { builder.append(" * " + reference.toString() + "\n"); } for (IType type : asSortedList(resource.adaptAs(ITypeResource.class).getContainedTypes())) { builder.append(" - " + type.getFullyQualifiedName() + "\n"); for (IReference reference : asSortedList(type.getReferences())) { builder.append(" * " + reference.toString() + "\n"); } } } builder.append("\n"); builder.append("Binary-Content: \n"); for (IProjectContentResource resource : asSortedList((Set<IProjectContentResource>)module.getResources(ResourceType.BINARY))) { builder.append(resource.getPath() + "\n"); for (IReference reference : asSortedList(resource.adaptAs(ITypeResource.class).getReferences())) { builder.append(" * " + reference.toString() + "\n"); } // for (IProjectContentResource stickyResources : asSortedList((Set<IProjectContentResource>)resource.getStickyResources())) { // builder.append(" ~sticky~ " + stickyResources.getPath() + "\n"); // } for (IType type : asSortedList(resource.adaptAs(ITypeResource.class).getContainedTypes())) { builder.append(" - " + type.getFullyQualifiedName() + "\n"); for (IReference reference : asSortedList(type.getReferences())) { builder.append(" * " + reference.toString() + "\n"); } } } // builder.append("\n"); // builder.append("Referenced Types: \n"); // Set<String> referencedTypes = module // .getReferencedTypeNames(ReferenceQueryFilters.ALL_DIRECT_EXTERNAL_REFERENCES_QUERY_FILTER); // for (String referencedType : asSortedList(referencedTypes)) { // builder.append(referencedType + "\n"); // } // // builder.append("\n"); // builder.append("Indirectly referenced Types: \n"); // Set<String> indirectlyReferencedTypes = module // .getReferencedTypeNames(ReferenceQueryFilters.ALL_DIRECT_EXTERNAL_REFERENCES_QUERY_FILTER); // for (String referencedType : asSortedList(indirectlyReferencedTypes)) { // if (!referencedTypes.contains(referencedType)) { // builder.append(referencedType + "\n"); // } // } // builder.append("\n"); // builder.append("Referenced Modules: \n"); // IReferencedModulesQueryResult queryResult = modularizedSystem.getReferencedModules(module); // // for (IModule referencedModule : queryResult.getReferencedModules()) { // builder.append(referencedModule.getModuleIdentifier().toString() + "\n"); // } // // // TODO // builder.append("\n"); // builder.append("Missing Types: \n"); // for (IReference missingType : asSortedList(queryResult.getUnsatisfiedReferences())) { // builder.append(missingType + "\n"); // } return builder.toString(); } /** * <p> * </p> * * @param <T> * @param set * @return */ private static <T extends Comparable<T>> List<T> asSortedList(Set<T> set) { // List<T> arrayList = new ArrayList<T>(set); // Collections.sort(arrayList); // return arrayList; } }