package com.technophobia.substeps.predicate;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import com.technophobia.eclipse.project.ProjectManager;
import com.technophobia.substeps.supplier.Predicate;
public class IsFeatureFolderPredicate implements Predicate<IFolder> {
private final ProjectManager projectManager;
public IsFeatureFolderPredicate(final ProjectManager projectManager) {
this.projectManager = projectManager;
}
@Override
public boolean forModel(final IFolder folder) {
final IProject project = folder.getProject();
final IPath featureFolderPath = featureFolderForProject(project);
return featureFolderPath != null ? isDescendantOf(folder.getLocation(), featureFolderPath) : false;
}
private boolean isDescendantOf(final IPath folder, final IPath featureFolderPath) {
return featureFolderPath.isPrefixOf(folder);
}
private IPath featureFolderForProject(final IProject project) {
return projectManager.featureFolderFor(project);
}
}