diff options
Diffstat (limited to 'framework/com.atlassian.connector.eclipse.crucible.ui/src/com/atlassian/connector/eclipse/internal/crucible/ui/actions/LocalTeamResourceConnector.java')
-rw-r--r-- | framework/com.atlassian.connector.eclipse.crucible.ui/src/com/atlassian/connector/eclipse/internal/crucible/ui/actions/LocalTeamResourceConnector.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/framework/com.atlassian.connector.eclipse.crucible.ui/src/com/atlassian/connector/eclipse/internal/crucible/ui/actions/LocalTeamResourceConnector.java b/framework/com.atlassian.connector.eclipse.crucible.ui/src/com/atlassian/connector/eclipse/internal/crucible/ui/actions/LocalTeamResourceConnector.java new file mode 100644 index 0000000..5383ba1 --- /dev/null +++ b/framework/com.atlassian.connector.eclipse.crucible.ui/src/com/atlassian/connector/eclipse/internal/crucible/ui/actions/LocalTeamResourceConnector.java @@ -0,0 +1,125 @@ +/******************************************************************************* + * Copyright (c) 2009 Atlassian and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Atlassian - initial API and implementation + ******************************************************************************/ + +package com.atlassian.connector.eclipse.internal.crucible.ui.actions; + +import com.atlassian.connector.eclipse.team.ui.AbstractTeamUiConnector; +import com.atlassian.connector.eclipse.team.ui.CrucibleFile; +import com.atlassian.connector.eclipse.team.ui.LocalStatus; +import com.atlassian.connector.eclipse.team.ui.ScmRepository; +import com.atlassian.theplugin.commons.crucible.api.UploadItem; +import com.atlassian.theplugin.commons.crucible.api.model.Review; +import com.atlassian.theplugin.commons.util.MiscUtil; + +import org.apache.commons.lang.NotImplementedException; +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceVisitor; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.mylyn.commons.core.StatusHandler; + +import java.util.Collection; +import java.util.List; + +public class LocalTeamResourceConnector extends AbstractTeamUiConnector { + + public boolean isEnabled() { + return true; + } + + public LocalStatus getLocalRevision(IResource resource) throws CoreException { + throw new NotImplementedException(); + } + + public ScmRepository getApplicableRepository(IResource resource) throws CoreException { + throw new NotImplementedException(); + } + + public String getName() { + throw new NotImplementedException(); + } + + public boolean haveMatchingResourcesRecursive(IResource[] roots, State filter) { + throw new NotImplementedException(); + } + + public List<IResource> getResourcesByFilterRecursive(IResource[] roots, State filter) { + final List<IResource> result = MiscUtil.buildArrayList(); + if (filter == State.SF_ALL || filter == State.SF_UNVERSIONED) { + IResourceVisitor visitor = new IResourceVisitor() { + public boolean visit(IResource resource) throws CoreException { + result.add(resource); + return true; + } + }; + + for (IResource root : roots) { + try { + root.accept(visitor); + } catch (CoreException e) { + StatusHandler.log(e.getStatus()); + } + } + } + return result; + } + + public Collection<UploadItem> getUploadItemsForResources(IResource[] resources, IProgressMonitor monitor) + throws CoreException { + List<UploadItem> items = MiscUtil.buildArrayList(); + for (IResource resource : resources) { + if (resource.getType() != IResource.FILE) { + // ignore anything but files + continue; + } + + final String fileName = getResourcePathWithProjectName(resource); + + IFile file = ((IFile) resource); + byte[] newContent = getResourceContent(file.getContents()); + items.add(new UploadItem(fileName, UploadItem.DEFAULT_CONTENT_TYPE, UploadItem.DEFAULT_CHARSET, + new byte[0], getContentType(file), getCharset(file), newContent.length == 0 ? EMPTY_ITEM + : newContent)); + } + return items; + } + + public IResource[] getMembersForContainer(IContainer element) throws CoreException { + throw new NotImplementedException(); + } + + public boolean isResourceManagedBy(IResource resource) { + return true; + } + + public boolean canHandleFile(IFile file) { + throw new NotImplementedException(); + } + + public CrucibleFile getCrucibleFileFromReview(Review activeReview, String fileUrl, String revision) { + throw new NotImplementedException(); + } + + public CrucibleFile getCrucibleFileFromReview(Review activeReview, IFile file) { + throw new NotImplementedException(); + } + + public Collection<ScmRepository> getRepositories(IProgressMonitor monitor) { + throw new NotImplementedException(); + } + + public boolean isResourceAcceptedByFilter(IResource resource, State state) { + return (state == State.SF_ALL || state == State.SF_UNVERSIONED); + } + +} |