package com.baselet.plugin.refactoring; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.resource.MoveResourceChange; public abstract class MovePngProcessor implements UmletRefactoringProcessor { private final IFile uxfDiagram; public MovePngProcessor(IFile uxfDiagram) { this.uxfDiagram = uxfDiagram; } @Override public List<Change> createChange(IProgressMonitor pm) { List<Change> result = new ArrayList<Change>(); // move img files with the diagram IContainer parent = uxfDiagram.getParent(); if (parent != null) { IFile pngFile = uxfDiagram.getProject().getFile(uxfDiagram.getProjectRelativePath().removeFileExtension().addFileExtension("png")); if (pngFile.exists()) { IContainer destinationFolder = getDestinationFolder(pngFile, uxfDiagram); if (destinationFolder != null) { result.add(new MoveResourceChange(pngFile, destinationFolder)); } } } return result; } protected abstract IContainer getDestinationFolder(IFile pngFile, IFile affectedDiagram); }