/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.refactoring; import java.util.Optional; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.NullChange; import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; import org.eclipse.ltk.core.refactoring.participants.DeleteParticipant; public class ResourceDeleteParticipant extends DeleteParticipant { private IResource deletedResource; @Override protected boolean initialize(final Object element) { this.deletedResource = (IResource) element; return true; } @Override public String getName() { return "Robot resource delete participant"; } @Override public RefactoringStatus checkConditions(final IProgressMonitor pm, final CheckConditionsContext context) throws OperationCanceledException { return new RefactoringStatus(); } @Override public Change createChange(final IProgressMonitor pm) throws CoreException, OperationCanceledException { final Optional<IPath> newPath = Optional.empty(); final Optional<Change> change = new RedXmlChangesCollector().collect(deletedResource, newPath); return change.isPresent() && !(change.get() instanceof NullChange) ? change.get() : null; } }