com.perforce.p4java.client
Interface IClient

All Superinterfaces:
IClientSummary, IServerResource
All Known Implementing Classes:
Client

public interface IClient
extends IClientSummary

Extends the lightweight IClientSummary interface to provide a "heavyweight" Perforce client object that has an associated Perforce client views and has the full panoply of Perforce operations defined against it.

Perforce clients are described in detail elsewhere, but in summary, a Perforce client object is returned from the Perforce server using one of the getClient(s) methods or by creating a new Perforce client through the newClient server method. Some Perforce operations are done through a Perforce client; some are associated with a Perforce client; and some are done directly through the Perforce server itself.

IClient objects are complete, refreshable, and updateable (unlike IClientSummary objects, which are not updateable).


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.perforce.p4java.client.IClientSummary
IClientSummary.ClientLineEnd, IClientSummary.IClientOptions, IClientSummary.IClientSubmitOptions
 
Method Summary
 java.util.List<IFileSpec> addFiles(java.util.List<IFileSpec> fileSpecs, boolean noUpdate, int changeListId, java.lang.String fileType, boolean useWildcards)
          Open one or more Perforce client workspace files for adding to the Perforce server.
 IChangelist createChangelist(IChangelist newChangelist)
          Create a new changelist for this Perforce client in the associated Perforce server.
 java.util.List<IFileSpec> deleteFiles(java.util.List<IFileSpec> fileSpecs, int changeListId, boolean noUpdate)
          Open a Perforce client workspace file for deletion from a Perforce depot.
 java.util.List<IFileSpec> editFiles(java.util.List<IFileSpec> fileSpecs, boolean noUpdate, boolean bypassClientUpdate, int changeListId, java.lang.String fileType)
          Open one or more Perforce client workspace files for editing.
 ClientView getClientView()
          Get the Perforce client view associated with this client, if any.
 java.util.List<IFileSpec> getDiffFiles(java.util.List<IFileSpec> fileSpecs, int maxFiles, boolean diffNonTextFiles, boolean openedDifferentMissing, boolean openedForIntegrate, boolean unopenedMissing, boolean unopenedDifferent, boolean unopenedWithStatus, boolean openedSame)
          Return a list of files that differ in some (arbitrarily complex) way from depot.
 IServer getServer()
          Return the IServer object representing the Perforce server associated with this Perforce client.
 java.util.List<IFileSpec> haveList(java.util.List<IFileSpec> fileSpecs)
          Return a list of all Perforce-managed files and versions that the Perforce server believes this Perforce client workspace has as of the latest sync.
 java.util.List<IFileSpec> integrateFiles(int changeListId, boolean showActionsOnly, IntegrationOptions integOpts, java.lang.String branchSpec, IFileSpec fromFile, IFileSpec toFile)
          Integrate ("merge") from one Perforce filespec to another.
 java.util.List<IFileSpec> labelSync(java.util.List<IFileSpec> fileSpecs, java.lang.String labelName, boolean noUpdate, boolean addFiles, boolean deleteFiles)
          Perform a label sync operation for this client.
 java.util.List<IFileSpec> lockFiles(java.util.List<IFileSpec> fileSpecs, int changeListId)
          Lock an opened file against changelist submission.
 java.util.List<IFileSpec> openedFiles(java.util.List<IFileSpec> fileSpecs, int maxFiles, int changeListId)
          If one or more Perforce file specs is passed-in, return the opened / locked status of each file (if known) within an IFileSpec object; otherwise return a list of all files known to be open for this Perforce client workspace.
 java.util.List<IFileSpec> reopenFiles(java.util.List<IFileSpec> fileSpecs, int changeListId, java.lang.String fileType)
          Reopen Perforce files in a new changelist.
 java.util.List<IFileSpec> resolvedFiles(java.util.List<IFileSpec> fileSpecs, boolean showBaseRevision)
          Return a list of files resolved but not submitted for this client.
 IFileSpec resolveFile(IFileSpec targetFile, java.io.InputStream sourceStream)
          Resolve a file integration by using the contents of the sourceStream InputStream as the resolve result.
 java.util.List<IFileSpec> resolveFilesAuto(java.util.List<IFileSpec> fileSpecs, boolean safeMerge, boolean acceptTheirs, boolean acceptYours, boolean showActionsOnly, boolean forceResolve)
          Automatically resolve the results of a previousPerforce file integration.
 java.util.List<IFileSpec> revertFiles(java.util.List<IFileSpec> fileSpecs, boolean noUpdate, int changeListId, boolean revertOnlyUnchanged, boolean noRefresh)
          Revert an open Perforce client workspace file back to the revision previously synced from the Perforce depot, discarding any pending changelists or integrations that have been made so far.
 void setClientView(ClientView clientView)
          Set the Perforce client view associated with this client.
 void setServer(IServer server)
          Set the Perforce server associated with this client.
 java.util.List<IFileSpec> shelveChangelist(IChangelist list)
          Shelve the file(s) in a pending changelist.
 java.util.List<IFileSpec> shelveChangelist(int changelistId, java.util.List<IFileSpec> fileSpecs, boolean forceUpdate, boolean replace, boolean discard)
          Update/replace/delete shelved file(s) from a pending changelist.
 java.util.List<IFileSpec> sync(java.util.List<IFileSpec> fileSpecs, boolean forceUpdate, boolean noUpdate, boolean clientBypass, boolean serverBypass)
          Sync a Perforce client workspace against the Perforce server.
 java.util.List<IFileSpec> unlockFiles(java.util.List<IFileSpec> fileSpecs, int changeListId, boolean force)
          Release locked files but leave them open.
 java.util.List<IFileSpec> unshelveChangelist(int shelveChangelistId, java.util.List<IFileSpec> fileSpecs, int clientChangelistId, boolean forceOverwrite, boolean previewOnly)
          Unshelve file(s) from a shelved changelist
 java.util.List<IFileSpec> where(java.util.List<IFileSpec> fileSpecs)
          For each of the passed-in file specs, show how the named file maps through the client view.
 
Methods inherited from interface com.perforce.p4java.client.IClientSummary
getAccessed, getAlternateRoots, getDescription, getHostName, getLineEnd, getName, getOptions, getOwnerName, getRoot, getSubmitOptions, getUpdated, setAccessed, setAlternateRoots, setDescription, setHostName, setLineEnd, setName, setOptions, setOwnerName, setRoot, setSubmitOptions, setUpdated
 
Methods inherited from interface com.perforce.p4java.core.IServerResource
canRefresh, canUpdate, refresh, update
 

Method Detail

getClientView

ClientView getClientView()
Get the Perforce client view associated with this client, if any.

Returns:
the Perforce client view associated with this client, if any; null otherwise.

setClientView

void setClientView(ClientView clientView)
Set the Perforce client view associated with this client.

Parameters:
clientView - new Perforce client view for the client.

getServer

IServer getServer()
Return the IServer object representing the Perforce server associated with this Perforce client.

Returns:
the IServer object representing the server associated with this client, or null if no such server exists or has been set for this client.

setServer

void setServer(IServer server)
Set the Perforce server associated with this client.

Specified by:
setServer in interface IServerResource
Parameters:
server - the IServer object representing the server associated with this client, or null if there's no such server.

sync

java.util.List<IFileSpec> sync(java.util.List<IFileSpec> fileSpecs,
                               boolean forceUpdate,
                               boolean noUpdate,
                               boolean clientBypass,
                               boolean serverBypass)
                               throws ConnectionException,
                                      RequestException,
                                      AccessException
Sync a Perforce client workspace against the Perforce server.

Parameters:
fileSpecs - files to be synchronized; if empty, synchronize all client files.
forceUpdate - if true, forces resynchronization even if the client already has the file, and clobbers writable files. This flag doesn't affect open files. Corresponds to the p4 sync "-f" flag.
noUpdate - causes sync not to update the client workspace, but to display what normally would be updated. Corresponds to the p4 sync "-n" flag.
clientBypass - bypasses the client file update. It can be used to make the server believe that a client workspace already has the file. Corresponds to the p4 sync "-k" flag.
serverBypass - populates the client workspace, but does not update the server to reflect those updates. Any file that is already synced or opened will be bypassed with a warning message. Corresponds to the p4 sync "-p" flag.
Returns:
non-null list of affected files as IFileSpec elements
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

labelSync

java.util.List<IFileSpec> labelSync(java.util.List<IFileSpec> fileSpecs,
                                    java.lang.String labelName,
                                    boolean noUpdate,
                                    boolean addFiles,
                                    boolean deleteFiles)
                                    throws ConnectionException,
                                           RequestException,
                                           AccessException
Perform a label sync operation for this client. See the main Perforce documentation for an explanation of the labelsync operation.

Parameters:
fileSpecs - if non-null,
labelName - non-null name of the label to be sync'd
noUpdate - if true, just show what would result with the labelsync rather than actually doing it
addFiles - if true, add the files in fileSpecs to the label
deleteFiles - if true, delete the files in fileSpecs from the label
Returns:
non-null list of affected files as IFileSpec elements
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

createChangelist

IChangelist createChangelist(IChangelist newChangelist)
                             throws ConnectionException,
                                    RequestException,
                                    AccessException
Create a new changelist for this Perforce client in the associated Perforce server. The newly-created changelist has no files associated with it (regardless of whether the passed-in changelist spec has files associated with it); if you wish to add files to the new changelist, you need to do a reopen on them explictly after the new changelist is returned.

The new changelist is returned if the command is successful; this changelist object will include the new changelist ID.

Parameters:
newChangelist - non-null specification for the new changelist; if the newChangelist's ID is not IChangelist.DEFAULT, it is ignored.
Returns:
the new changelist, or null if there was an error or the new changelist is inaccessible.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

addFiles

java.util.List<IFileSpec> addFiles(java.util.List<IFileSpec> fileSpecs,
                                   boolean noUpdate,
                                   int changeListId,
                                   java.lang.String fileType,
                                   boolean useWildcards)
                                   throws ConnectionException,
                                          AccessException
Open one or more Perforce client workspace files for adding to the Perforce server.

Parameters:
fileSpecs - non-null list of files to be opened, in Perforce client or depot or local path format.
noUpdate - if true, don't actually do the open, just return the files that would have been opened for addition.
changeListId - if positive, the opened files are put into the pending changelist identified by changeListId; this changelist must have been previously created. If zero or negative, the file is opened in the 'default' (unnumbered) changelist.
fileType - if non-null, the files are added as that filetype. See 'p4 help filetypes' to attempt to make any sense of Perforce file types.
useWildcards - if true, filenames that contain wildcards are permitted. See the main Perforce documentation for file adding for details.
Returns:
a non-null but possibly-empty list of IFileSpec objects representing the opened files. Not all fields in these specs will be valid or set.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

editFiles

java.util.List<IFileSpec> editFiles(java.util.List<IFileSpec> fileSpecs,
                                    boolean noUpdate,
                                    boolean bypassClientUpdate,
                                    int changeListId,
                                    java.lang.String fileType)
                                    throws RequestException,
                                           ConnectionException,
                                           AccessException
Open one or more Perforce client workspace files for editing.

Parameters:
fileSpecs - non-null list of files to be opened, in Perforce client or depot or local path format.
noUpdate - if true, don't actually do the open, just return the files that would have been opened for edit.
bypassClientUpdate - if true, the edit bypasses any client file update. Equivalent to the new 2009.2 and later "-k" option. If set true with a Perforce server earlier than 2009.2, will produce a suitable RequestException. Note: this option can cause havoc if you don't use care...
changeListId - if positive, the opened files are put into the pending changelist identified by changeListId; this changelist must have been previously created. If zero or negative, the file is opened in the 'default' (unnumbered) changelist.
fileType - if non-null, the file is opened as that filetype. Otherwise, the filetype of the previous revision is reused. If the filetype given is a partial filetype, that partial filetype is combined with the previous revision's filetype. See 'p4 help filetypes' to attempt to make any sense of this..
Returns:
a non-null but possibly-empty list of IFileSpec objects representing the opened files. Not all fields in these specs will be valid or set.
Throws:
RequestException - if the Perforce server encounters an error during its processing of the request
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

revertFiles

java.util.List<IFileSpec> revertFiles(java.util.List<IFileSpec> fileSpecs,
                                      boolean noUpdate,
                                      int changeListId,
                                      boolean revertOnlyUnchanged,
                                      boolean noRefresh)
                                      throws ConnectionException,
                                             AccessException
Revert an open Perforce client workspace file back to the revision previously synced from the Perforce depot, discarding any pending changelists or integrations that have been made so far.

Parameters:
fileSpecs - non-null (but possibly-empty) list of files to be reverted
noUpdate - if true, don't actually do the revert, just return the files that would have been reverted
changeListId - if positive, revert only those files in the pending changelist given in changeListId.
revertOnlyUnchanged - if true, revert only those files which are opened for edit or integrate and are unchanged or missing.
noRefresh - if true, bypass the client file refresh of the reverted files.
Returns:
a non-null but possibly-empty list of IFileSpec objects representing the reverted files. Not all fields in these specs will be valid or set.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

deleteFiles

java.util.List<IFileSpec> deleteFiles(java.util.List<IFileSpec> fileSpecs,
                                      int changeListId,
                                      boolean noUpdate)
                                      throws ConnectionException,
                                             AccessException
Open a Perforce client workspace file for deletion from a Perforce depot.

Parameters:
fileSpecs - non-null list of files to be opened
changeListId - if positive, the opened files are put into the pending changelist identified by changeListId; this changelist must have been previously created. If zero or negative, the file is opened in the 'default' (unnumbered) changelist.
noUpdate - if true, don't actually do the open, just return the files that would have been opened for deletion.
Returns:
a non-null but possibly-empty list of IFileSpec objects representing the opened files. Not all fields in these specs will be valid or set
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

openedFiles

java.util.List<IFileSpec> openedFiles(java.util.List<IFileSpec> fileSpecs,
                                      int maxFiles,
                                      int changeListId)
                                      throws ConnectionException,
                                             AccessException
If one or more Perforce file specs is passed-in, return the opened / locked status of each file (if known) within an IFileSpec object; otherwise return a list of all files known to be open for this Perforce client workspace.

The returned list can be modified with the other arguments as described below.

Parameters:
fileSpecs - if non-empty, determine the status of the specified files; otherwise return all qualifying files known to be open
maxFiles - if positive, return only the first maxFiles qualifying files.
changeListId - if positive, return only files associated with the given changelist ID.
Returns:
non-null but possibly-empty list of qualifying open files. Not all fields in individual file specs will be valid or make sense to be accessed.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

haveList

java.util.List<IFileSpec> haveList(java.util.List<IFileSpec> fileSpecs)
                                   throws ConnectionException,
                                          AccessException
Return a list of all Perforce-managed files and versions that the Perforce server believes this Perforce client workspace has as of the latest sync. If fileSpecs is given, this method returns, only information on those files is returned.

Only the depotFile, revision, clientPath, and localPath fields of the returned file specs are guaranteed to be valid.

Parameters:
fileSpecs - file specs; if empty or null, return all qualifying files
Returns:
non-null (but possibly empty) list of IFileSpec objects for the passed-in arguments.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.t
AccessException - if the Perforce server denies access to the caller

where

java.util.List<IFileSpec> where(java.util.List<IFileSpec> fileSpecs)
                                throws ConnectionException,
                                       AccessException
For each of the passed-in file specs, show how the named file maps through the client view.

The returned IFiles contain all three of the depot, client, and local file paths of the corresponding fileSpec array element where appropriate, or the usual server-generated error message if there was no corresponding mapping. The main exception to this is the case when no filespecs are given (i.e. the fileSpecs array is null or empty), when the mappings for '...' (all files in the current directory and below) are returned (if they exist).

Parameters:
fileSpecs - a list of Perforce file specifications; can be empty or even null (see explanation above).
Returns:
a non-null (but possibly empty) list of IFileSpec for the input filespecs.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

reopenFiles

java.util.List<IFileSpec> reopenFiles(java.util.List<IFileSpec> fileSpecs,
                                      int changeListId,
                                      java.lang.String fileType)
                                      throws ConnectionException,
                                             AccessException
Reopen Perforce files in a new changelist.

Parameters:
fileSpecs - non-null list of files to be reopened
changeListId - the new changelist ID to be used
fileType - if non-null, the file is reopened as that filetype. If the filetype given is a partial filetype, that partial filetype is combined with the current filetype. See 'p4 help filetypes' to attempt to make any sense of this..
Returns:
list of IFileSpec for each specified file
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

integrateFiles

java.util.List<IFileSpec> integrateFiles(int changeListId,
                                         boolean showActionsOnly,
                                         IntegrationOptions integOpts,
                                         java.lang.String branchSpec,
                                         IFileSpec fromFile,
                                         IFileSpec toFile)
                                         throws ConnectionException,
                                                AccessException
Integrate ("merge") from one Perforce filespec to another. The semantics of Perforce merges are complex and are not explained here; please consult the main Perforce documentation for file merges and the IntegrationOptions Javdoc comments for details of the less-commonly-used options.

Parameters:
changeListId - if not IChangelist.UNKNOWN, use this as the target changelist
showActionsOnly - if true, don't actually do the integration, just return the actions that would have been done
branchSpec - if not null, use this as the integration branch specification (as in the -b option to integ).
integOpts - detailed integration objects. If null, the method will use default option values as described for the IntegrationOptions constructor, all of which are safe for straightforward merge use.
fromFile - if not null, use this as the source Perforce filespec
toFile - if not null, use this as the target Perforce filespec
Returns:
non-null list of IFileSpec objects describing the intended or actual integration actions.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

resolveFilesAuto

java.util.List<IFileSpec> resolveFilesAuto(java.util.List<IFileSpec> fileSpecs,
                                           boolean safeMerge,
                                           boolean acceptTheirs,
                                           boolean acceptYours,
                                           boolean showActionsOnly,
                                           boolean forceResolve)
                                           throws ConnectionException,
                                                  AccessException
Automatically resolve the results of a previousPerforce file integration.

Note that this is currently a very limited version of the full Perforce resolve feature, corresponding only to (some of) the various auto-resolve features, meaning this method will never invoke (or need to invoke) end user interaction. More extensive versions of the resolve command will be surfaced as needed.

This method notionally returns an IFileSpec, as it's closely related to the integ method and shares many of its return values, but there are several limitations in the use of the returned IFileSpecs. In general, what is returned from this method is a mixture of resolution info messages (i.e. messages from the server that spell out what would or did happen during the resolve), and "true" filespecs. In the latter case, the filespec has a very limited set of valid fields: only client path, from file, and the from revisions are guaranteed to be valid. In the former case, since the info messages do NOT correspond one-to-one with the input file specs that caused the messages, consumers need to explicitly search each returned info message string for the relevant file path or name. This is an unfortunate artefact of the Perforce server's implementation of this command.

Note: results and behaviour are undefined if clashing or inconsistent options are used with this method. In general, the behaviour of (e.g.) setting both acceptYours and acceptTheirs true will be whatever the Perforce server makes of it (usually an error), but that's not guaranteed....

Parameters:
fileSpecs - files to be resolved; if null or empty, all files marked as needing resolution will be processed
safeMerge - if true, only do "safe" resolves, as documented for the p4 "-as" option
acceptTheirs - if true, automatically accept "their" changes, as documented for the p4 "-at" option
acceptYours - if true, automatically accept "your" changes, as documented for the p4 "-ay" option
showActionsOnly - if true, don't do the actual resolve, just return the actions that would have been performed for the resolve
forceResolve - forces auto-mode resolve to accept the merged file even if there are conflicts. This option results in a merged file that may contain Perforce conflict markers; these markers should be edited out of the file manually before it's submitted (unless you actually want them there...).
Returns:
non-null but possibly-empty list of integration file specs for the resolve; see note above on the semantics of this list.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

resolveFile

IFileSpec resolveFile(IFileSpec targetFile,
                      java.io.InputStream sourceStream)
                      throws ConnectionException,
                             RequestException,
                             AccessException
Resolve a file integration by using the contents of the sourceStream InputStream as the resolve result.

Note that this method only works with the default RPC (pure Java) protocol implementations; if the underlying implementation detects a mismatch, it will throw a suitable RequestException.

Use of this method will normally result in an integration edit record in the target file's history whether you've actually done an edit or not, so it is up to the consumer to weed out the various straight copy resolve cases and only use this for cases of more complex merges that actually did involve an edit (in reality or not).

Note that the IFileSpec returned will generally not have a valid depot or client file paths -- you must use the toFile and fromFile methods on the returns here.

Parameters:
targetFile - non-null file to be resolved.
sourceStream - non-null InputStream containing the resolved file's new contents.
Returns:
possibly-null IFileSpec representing the result of the resolve
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller
RequestException

resolvedFiles

java.util.List<IFileSpec> resolvedFiles(java.util.List<IFileSpec> fileSpecs,
                                        boolean showBaseRevision)
                                        throws ConnectionException,
                                               AccessException
Return a list of files resolved but not submitted for this client. Note that the returned list has only the localPath field set (i.e. depot, client, and generic paths are not set). This reflects the returned values from the server itself.

Parameters:
fileSpecs - optional filespecs to be processed
showBaseRevision - if true, reports the revision used as the base during resolve (this seems to have no effect).
Returns:
list of files that have been resolved but not yet submitted
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

lockFiles

java.util.List<IFileSpec> lockFiles(java.util.List<IFileSpec> fileSpecs,
                                    int changeListId)
                                    throws ConnectionException,
                                           AccessException
Lock an opened file against changelist submission.

The open files named are locked in the Perforce depot, preventing any user other than the current user on the current client from submitting changes to the files. If a file is already locked then the lock request is rejected. If no file specs are given then lock all files currently open in the changelist number given if it is IChangelist.DEFAULT or > 0.

Note that the file specs returned are only partially filled out; the Perforce server seems to only return path information for this command.

Parameters:
fileSpecs - candidate file specs
changeListId - if IChangelist.DEFAULT or larger than zero, lock all files associated this changelist ID
Returns:
non-null but possibly-empty list of locked file specs or errors
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

unlockFiles

java.util.List<IFileSpec> unlockFiles(java.util.List<IFileSpec> fileSpecs,
                                      int changeListId,
                                      boolean force)
                                      throws ConnectionException,
                                             AccessException
Release locked files but leave them open.

If the files are open in a specific pending changelist other than 'default', then the changeListId parameter is required to specify the pending changelist. If no file name is given then all files in the designated changelist are unlocked.

Note that the file specs returned are only partially filled out; the Perforce server seems to only return path information for this command.

Parameters:
fileSpecs - candidate file specs
changeListId - if IChangelist.DEFAULT or larger than zero, lock all files associated this changelist ID
force - force the lock on non-owned filespecs. Requires appropriate permissions.
Returns:
non-null but possibly-empty list of locked file specs or errors
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
AccessException - if the Perforce server denies access to the caller

getDiffFiles

java.util.List<IFileSpec> getDiffFiles(java.util.List<IFileSpec> fileSpecs,
                                       int maxFiles,
                                       boolean diffNonTextFiles,
                                       boolean openedDifferentMissing,
                                       boolean openedForIntegrate,
                                       boolean unopenedMissing,
                                       boolean unopenedDifferent,
                                       boolean unopenedWithStatus,
                                       boolean openedSame)
                                       throws ConnectionException,
                                              RequestException,
                                              AccessException
Return a list of files that differ in some (arbitrarily complex) way from depot. See the help documentation for the p4 diff command using the "-sx" (-sa, -sl, etc.) options for a full discussion of the options used below.

Note that this method returns lists of files, and is not useful to get the diffs themselves (at least not directly).

Note that the diff status returned for the unopenedWithStatus option is retrievable from the filespec with the getDiffStatus() method.

Note that you must have at least one of the various "-s" options set to true.

Parameters:
maxFiles -
fileSpecs - candidate file specs; may be null.
diffNonTextFiles - include non-text files in the diff lists
openedDifferentMissing - corresponds to the "-sa" option for the p4 command line.
openedForIntegrate - corresponds to the "-sb" option for the p4 command line.
unopenedMissing - corresponds to the "-sd" option for the p4 command line.
unopenedDifferent - corresponds to the "-se" option for the p4 command line.
unopenedWithStatus - corresponds to the "-sl" option for the p4 command line.
openedSame - corresponds to the "-sr" option for the p4 command line.
Returns:
non-null but possibly-empty list of qualifying filepecs.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

shelveChangelist

java.util.List<IFileSpec> shelveChangelist(int changelistId,
                                           java.util.List<IFileSpec> fileSpecs,
                                           boolean forceUpdate,
                                           boolean replace,
                                           boolean discard)
                                           throws ConnectionException,
                                                  RequestException,
                                                  AccessException
Update/replace/delete shelved file(s) from a pending changelist.

Parameters:
changelistId - ID of the changelist containing the files to be shelved. Can not be IChangelist.DEFAULT or IChangelist.UNKNOWN (both of which will cause server usage errors to be returned if used).
fileSpecs - list of files to be shelved; if null or empty, shelve all files in the changelist
forceUpdate - if true, update the named shelved files.
replace - if true, replace the named shelved files.
discard - if truem discard the named shelved files.
Returns:
non-null but possibly empty list of file specs representing the server's response.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

shelveChangelist

java.util.List<IFileSpec> shelveChangelist(IChangelist list)
                                           throws ConnectionException,
                                                  RequestException,
                                                  AccessException
Shelve the file(s) in a pending changelist.

This performs a 'p4 shelve -i' command when called.

Parameters:
list - non-null changelist to be shelved.
Returns:
non-null but possibly empty list of file specs representing the server's response.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller

unshelveChangelist

java.util.List<IFileSpec> unshelveChangelist(int shelveChangelistId,
                                             java.util.List<IFileSpec> fileSpecs,
                                             int clientChangelistId,
                                             boolean forceOverwrite,
                                             boolean previewOnly)
                                             throws ConnectionException,
                                                    RequestException,
                                                    AccessException
Unshelve file(s) from a shelved changelist

Parameters:
shelveChangelistId - id of changelist containing shelved files to unshelve (-s)
fileSpecs - optional list of file specs to limit unshelving to
clientChangelistId - id of changelist to unshelve the files into (-c)
forceOverwrite - force clobbering of files currently writeable but unopened (-f)
previewOnly - don't actually unshelve but get the file specs that would be unshelved (-n)
Returns:
non-null but possibly empty list of file specs representing the server's response.
Throws:
ConnectionException - if the Perforce server is unreachable or is not connected.
RequestException - if the Perforce server encounters an error during its processing of the request
AccessException - if the Perforce server denies access to the caller


Copyright (c) 2008-2010 Perforce Software. All rights reserved.