package org.bundlemaker.core.internal.resource; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import org.bundlemaker.core.project.IMovableUnit; import org.bundlemaker.core.project.IProjectContentResource; import org.bundlemaker.core.project.internal.movableunit.DefaultMovableUnitCreator; import org.bundlemaker.core.project.internal.movableunit.MovableUnitRegistry; import org.bundlemaker.core.project.spi.IMovableUnitCreator; import org.bundlemaker.core.resource.IModuleResource; public class DispatchingMovableUnitCreator implements IMovableUnitCreator { /** * {@inheritDoc} */ @Override public Set<IMovableUnit> assignMovableUnits(Map<String, IProjectContentResource> binaries, Map<String, IProjectContentResource> sources) { // Set<IMovableUnit> result = new HashSet<IMovableUnit>(); // List<IMovableUnitCreator> creators = new LinkedList<IMovableUnitCreator>(MovableUnitRegistry.instance() .getCreators()); creators.add(new DefaultMovableUnitCreator()); // for (IMovableUnitCreator creator : creators) { // Set<IMovableUnit> movableUnits = creator.assignMovableUnits(binaries, sources); result.addAll(movableUnits); // for (IMovableUnit unit : movableUnits) { // remove binaries for (IProjectContentResource moduleResource : unit.getAssociatedBinaryResources()) { binaries.remove(moduleResource.getPath()); } // remove sources sources.remove(unit.getAssociatedSourceResource().getPath()); } } // for (IProjectContentResource moduleResource : sources.values()) { result.add(new ModuleAwareMovableUnit(moduleResource, (IProjectContentResource) null)); } // for (IProjectContentResource moduleResource : binaries.values()) { result.add(new ModuleAwareMovableUnit((IModuleResource) null, moduleResource)); } // return result; } }