package org.bundlemaker.core.internal.transformation.add; import java.util.List; import org.bundlemaker.core.analysis.IBundleMakerArtifact; import org.bundlemaker.core.analysis.IModuleArtifact; import org.bundlemaker.core.analysis.IPackageArtifact; import org.bundlemaker.core.analysis.IResourceArtifact; import org.bundlemaker.core.analysis.IResourceArtifact.IResourceArtifactContent; import org.bundlemaker.core.internal.analysis.AdapterUtils; import org.bundlemaker.core.internal.api.resource.IModifiableModule; import org.bundlemaker.core.resource.IModule; import org.bundlemaker.core.resource.IModuleAwareMovableUnit; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) * */ public class AddMovableUnitsToModule implements IAddArtifactAction<IBundleMakerArtifact> { /** - */ private List<IModuleAwareMovableUnit> _movedMovableUnits; /** - */ private IModule _oldParentModule; /** * <p> * </p> * * @param parentArtifact * @param artifact */ public void addChildToParent(IBundleMakerArtifact parentArtifact, IBundleMakerArtifact artifact) { // add a package or a resource or a type to the module if (artifact.isInstanceOf(IPackageArtifact.class) || artifact.isInstanceOf(IResourceArtifact.class) || artifact.isInstanceOf(IResourceArtifactContent.class)) { // _movedMovableUnits = AdapterUtils.getAllMovableUnits(artifact); _oldParentModule = (IModule) artifact.getParent(IModuleArtifact.class).getAssociatedModule(); // IModuleArtifact moduleArtifact = parentArtifact instanceof IModuleArtifact ? parentArtifact .castTo(IModuleArtifact.class) : parentArtifact .getParent(IModuleArtifact.class); // AdapterUtils.addResourcesToModule((IModifiableModule) moduleArtifact.getAssociatedModule(), _movedMovableUnits); } } /** * {@inheritDoc} */ @Override public void undo() { AdapterUtils.addResourcesToModule((IModifiableModule) _oldParentModule, _movedMovableUnits); } }