package org.codefaces.core.github.internal.operations;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.codefaces.core.connectors.SCMConnector;
import org.codefaces.core.models.Repo;
import org.codefaces.core.models.RepoFolder;
import org.codefaces.core.models.RepoFolderRoot;
import org.codefaces.core.models.RepoResource;
import org.codefaces.core.operations.SCMOperationHandler;
import org.codefaces.core.operations.SCMOperationParameter;
import org.codefaces.core.operations.SCMOperationParameters;
import org.eclipse.core.runtime.Assert;
public class GitHubFetchChildrenForRootHandler implements SCMOperationHandler{
public static final String ID = "org.codefaces.core.operations.SCMOperation.github.fetchChildrenFromRoot";
@Override
public Collection<RepoResource> execute(SCMConnector connector,
SCMOperationParameters parameter) {
Object folderRootPara = parameter.getParameter(SCMOperationParameter.REPO_FOLDER);
Assert.isTrue(folderRootPara instanceof RepoFolderRoot);
RepoFolderRoot root = (RepoFolderRoot)folderRootPara;
Repo repo = root.getRepo();
RepoFolder branchesFolder = new RepoFolder(root, root,
GitHubOperationUtil.makeURI(repo.getPath().toString(),
GitHubOperationConstants.BRANCHES_FOLDER_NAME),
GitHubOperationConstants.BRANCHES_FOLDER_NAME);
RepoFolder tagsFolder = new RepoFolder(root, root,
GitHubOperationUtil.makeURI(repo.getPath().toString(),
GitHubOperationConstants.TAGS_FOLDER_NAME),
GitHubOperationConstants.TAGS_FOLDER_NAME);
Set<RepoResource> children = new HashSet<RepoResource>();
children.add(branchesFolder);
children.add(tagsFolder);
return children;
}
}