package net.sourceforge.pmd.eclipse.ui.model; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.team.core.RepositoryProvider; import org.eclipse.team.core.history.IFileHistoryProvider; import org.eclipse.team.core.history.IFileRevision; /** * * @author Brian Remedios */ public class RepositoryUtil { private static Boolean hasRepositoryAccess; private RepositoryUtil() { } public static boolean hasRepositoryAccess() { if (hasRepositoryAccess != null) return hasRepositoryAccess; try { Class.forName("org.eclipse.team.core.RepositoryProvider"); hasRepositoryAccess = Boolean.TRUE; } catch (ClassNotFoundException e) { hasRepositoryAccess = Boolean.FALSE; } return hasRepositoryAccess; } /** * Returns the name of the resource author if the resource was parked in * a repository or null if it wasn't. * * @param resource * @return String */ public static String authorNameFor(IResource resource) { IProject project = resource.getProject(); String authorName = null; try { RepositoryProvider provider = RepositoryProvider.getProvider(project); if (provider == null) return null; IFileHistoryProvider fhProvider = provider.getFileHistoryProvider(); if (fhProvider == null) return null; IFileRevision revision = fhProvider.getWorkspaceFileRevision(resource); authorName = revision.getAuthor(); } catch (Exception ex) { ex.printStackTrace(); } return authorName; } }