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.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.resource.RenameResourceChange; public abstract class RenamePngProcessor implements UmletRefactoringProcessor { private final IFile affectedDiagram; public RenamePngProcessor(IFile affectedDiagram) { this.affectedDiagram = affectedDiagram; } @Override public List<? extends Change> createChange(IProgressMonitor monitor) throws CoreException { List<Change> result = new ArrayList<Change>(); // rename img files with the diagram IContainer parent = affectedDiagram.getParent(); if (parent != null) { IFile pngFile = affectedDiagram.getProject().getFile(affectedDiagram.getProjectRelativePath().removeFileExtension().addFileExtension("png")); if (pngFile.exists()) { result.add(new RenameResourceChange(pngFile.getFullPath(), getTargetname(pngFile, affectedDiagram))); } } return result; } protected abstract String getTargetname(IFile pngFile, IFile affectedDiagram); }