blob: 75ae8ffb20b37a73b1dea3eda1103687860dd483 [file] [log] [blame]
package org.eclipse.team.internal.ccvs.core;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
/**
* This interface represents a remote folder in a repository. It provides
* access to the members (remote files and folders) of a remote folder
*
* Clients are not expected to implement this interface.
*/
public interface ICVSRemoteFolder extends ICVSRemoteResource, ICVSFolder {
/**
* Allows a client to change the context of a remote folder handle. For
* example, if a remote folder was created with the HEAD context (e.g. can
* be used to browse the main branch) use this method to change the
* context to another branch tag or to a version tag.
*/
public void setTag(CVSTag tagName);
/**
* Return the context of this handle. The returned tag can be a branch or
* version tag.
*/
public CVSTag getTag();
/**
* Return the local options that are used to determine how memebers are retrieved.
*
* Interesting options are:
* Checkout.ALIAS
* Command.DO_NOT_RECURSE
*/
public LocalOption[] getLocalOptions();
/**
* Indicates whether the remote folder can be expanded.
*
* This is a temporary (hopefully) means of indicating certain types of folders
* (i.e. module definitions) that are not expandable due to lack of mdoule expansion.
* They can still be checked out.
*/
public boolean isExpandable();
/**
* Tag the remote resources referenced by the remote folder (using rtag)
*/
public IStatus tag(CVSTag tag, LocalOption[] localOptions, IProgressMonitor monitor) throws CVSException;
}