public class Changelist extends ChangelistSummary implements IChangelist
IChangelist.TypeIChangelistSummary.Visibility| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_DESCRIPTION
The default description string for new changelists created by
newChangelist.
|
protected List<IFileSpec> |
fileSpecs |
protected List<String> |
jobIds |
protected IOptionsServer |
serverImpl |
CHANGE_KEY, CLIENT_KEY, clientId, date, DATE_FORMAT, DATE_KEY, description, DESCRIPTION_KEY, id, JOBS_KEY, NEW_KEY, shelved, status, STATUS_KEY, USER_KEY, username, visibilityrefreshable, server, updateableDEFAULT, UNKNOWN| Constructor and Description |
|---|
Changelist()
Default constructor; calls default superclass constructor.
|
Changelist(IChangelistSummary summary,
IOptionsServer server,
boolean refresh)
Construct a new Changelist using the passed-in changelist as a template.
|
Changelist(IChangelistSummary summary,
IServer server,
boolean refresh)
Deprecated.
|
Changelist(int id,
String clientId,
String username,
ChangelistStatus status,
Date date,
String description,
boolean shelved,
Server serverImpl)
Construct a changelist implementation given an explicit set of initial field values.
|
Changelist(int id,
String clientId,
String username,
ChangelistStatus status,
Date date,
String description,
boolean shelved,
Server serverImpl,
IChangelistSummary.Visibility visibility)
Construct a changelist implementation given an explicit set of initial field values.
|
Changelist(Map<String,Object> map,
IOptionsServer serverImpl)
Construct a changelist impl from the passed-in map and serverImpl parameters.
|
Changelist(Map<String,Object> map,
IServer serverImpl)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
List<String> |
getCachedJobIdList()
Return a cached list of job Id's associated with this changelist.
|
String |
getClientId()
Get the ID of the Perforce client workspace associated with this changelist.
|
Date |
getDate()
Get the date the changelist was created or last updated.
|
String |
getDescription()
Return the description associated with this changelist.
|
InputStream |
getDiffs(DiffType diffType)
Get an InputStream onto the file diffs associated with this changelist.
|
InputStream |
getDiffsStream(GetChangelistDiffsOptions opts)
Get an InputStream onto the file diffs associated with this changelist.
|
List<IFileSpec> |
getFiles(boolean refresh)
Get the list of files associated with this changelist, optionally refreshing
the list from the server.
|
List<IFileSpec> |
getFiles(boolean refresh,
boolean bypassServer) |
List<IFileSpec> |
getFileSpecs() |
int |
getId()
Return the Perforce changelist's ID.
|
List<String> |
getJobIds()
Return a list of Perforce jobs IDs for jobs marked as associated with
this changelist.
|
List<IJob> |
getJobs()
Return a list of Perforce jobs marked as associated with
this changelist.
|
IServer |
getServer() |
ChangelistStatus |
getStatus()
Get the status of this changelist, if known.
|
String |
getUsername()
Get the user name of the user associated with this changelist.
|
boolean |
isShelved()
Does this changelist contain at least one shelved file?
This only applies to changelists whose
IChangelistSummary.getStatus() is
ChangelistStatus.PENDING and that have been returned as
IChangelistSummary objects. |
static Changelist |
newChangelist(IClient client,
String description)
Return a new local Changelist object with default values by calling
newChangelist with server and client name values taken from the passed-in
client object.
|
static Changelist |
newChangelist(IServer server,
String clientName,
String description)
Return a new local Changelist object with default values.
|
void |
refresh()
Refresh the underlying object from the Perforce server.
|
void |
setClientId(String clientId)
Set the client ID.
|
void |
setDate(Date date)
Set the changelist date.
|
String |
setDescription(String description)
Set the description string for this changelist.
|
void |
setFileSpecs(List<IFileSpec> fileSpecs) |
void |
setId(int id)
Set the changelist ID.
|
void |
setServerImpl(Server serverImpl) |
void |
setShelved(boolean shelved)
Set the changelist as shelved or not shelved
|
void |
setStatus(ChangelistStatus status)
Set the changelist status.
|
void |
setUsername(String username)
Set the changelist owner ID.
|
List<IFileSpec> |
submit(boolean reOpen)
Submit this changelist.
|
List<IFileSpec> |
submit(boolean reOpen,
List<String> jobIds,
String jobStatus)
Submit this changelist and associate it with the passed-in jobs.
|
List<IFileSpec> |
submit(SubmitOptions opts)
Submit this changelist and associate it with any jobs in the passed-in options.
|
void |
submit(SubmitOptions opts,
IStreamingCallback callback,
int key)
Submit this changelist and associate it with any jobs in the passed-in options.
|
void |
update()
Update the Perforce server object associated with the underlying P4Java object,
if possible.
|
void |
update(boolean force)
Force (if true) update the Perforce server object associated with the underlying
P4Java object, if possible.
|
void |
update(Options opts)
Update the Perforce server object associated with the underlying P4Java object
and its options, if possible.
|
void |
updateOnServer(boolean refresh)
Update the Perforce server's version of this changelist.
|
getVisibility, setVisibilitycanRefresh, canUpdate, complete, setRefreshable, setServerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcanRefresh, canUpdate, setServergetVisibility, setVisibilityprotected IOptionsServer serverImpl
public static final String DEFAULT_DESCRIPTION
public Changelist()
Actual users of this constructor need to ensure that the super-super-class ServeResource fields are set appropriately after calling this constructor.
public Changelist(int id,
String clientId,
String username,
ChangelistStatus status,
Date date,
String description,
boolean shelved,
Server serverImpl)
This constructor requires a Server object as its serverImpl parameter; note that any server object returned by the ServerFactory will work, as long as it's downcast to Server. If it doesn't cast cleanly, then it is not suitable for use here.
public Changelist(int id,
String clientId,
String username,
ChangelistStatus status,
Date date,
String description,
boolean shelved,
Server serverImpl,
IChangelistSummary.Visibility visibility)
This constructor requires a Server object as its serverImpl parameter; note that any server object returned by the ServerFactory will work, as long as it's downcast to Server. If it doesn't cast cleanly, then it is not suitable for use here.
public Changelist(IChangelistSummary summary, IOptionsServer server, boolean refresh) throws ConnectionException, RequestException, AccessException
If changelist is null, this is equivalent to calling the default constructor.
ConnectionException - if the Perforce server is unreachable or is not connected.RequestException - if the Perforce server encounters an error during its processing of
the requestAccessException - if the Perforce server denies access to the caller@Deprecated public Changelist(IChangelistSummary summary, IServer server, boolean refresh) throws ConnectionException, RequestException, AccessException
public Changelist(Map<String,Object> map, IOptionsServer serverImpl)
This constructor requires a Server object as its serverImpl parameter; note that any server object returned by the ServerFactory will work, as long as it's downcast to Server. If it doesn't cast cleanly, then it is not suitable for use here.
@Deprecated public Changelist(Map<String,Object> map, IServer serverImpl)
public static Changelist newChangelist(IServer server, String clientName, String description)
Note that this object is a local object only -- you must subsequently call the client's createChangelist method to also create it on the server (or use the Factory.createChangelist convenience method).
server - non-null IServer object to be associated with this changelist.clientName - non-null name of the client to be associated with this changelistdescription - if not null, the changelist description string; if null, defaults to
Changelist.DEFAULT_DESCRIPTION.public static Changelist newChangelist(IClient client, String description)
Note that this object is a local object only -- you must subsequently call the client's createChangelist method to also create it on the server (or use the Factory.createChangelist convenience method).
client - non-null client to be associated withdescription - if not null, the changelist description string; if null, defaults to
Changelist.DEFAULT_DESCRIPTION.public boolean isShelved()
IChangelistSummaryIChangelistSummary.getStatus() is
ChangelistStatus.PENDING and that have been returned as
IChangelistSummary objects. The value here is unreliable for
full IChangelist objects returned from getChangelist, etc.isShelved in interface IChangelistSummaryisShelved in class ChangelistSummaryIChangelistSummary.isShelved()public void setShelved(boolean shelved)
setShelved in interface IChangelistSummarysetShelved in class ChangelistSummaryshelved - new shelved value.IChangelistSummary.setShelved(boolean)public int getId()
IChangelistSummarygetId in interface IChangelistSummarygetId in class ChangelistSummaryIChangelistSummary.getId()public void setId(int id)
IChangelistSummarysetId in interface IChangelistSummarysetId in class ChangelistSummaryid - new changelist ID.IChangelistSummary.setId(int)public String getClientId()
IChangelistSummarygetClientId in interface IChangelistSummarygetClientId in class ChangelistSummaryIChangelistSummary.getClientId()public void setClientId(String clientId)
IChangelistSummarysetClientId in interface IChangelistSummarysetClientId in class ChangelistSummaryclientId - new client ID.IChangelistSummary.setClientId(java.lang.String)public String getUsername()
IChangelistSummarygetUsername in interface IChangelistSummarygetUsername in class ChangelistSummaryIChangelistSummary.getUsername()public void setUsername(String username)
IChangelistSummarysetUsername in interface IChangelistSummarysetUsername in class ChangelistSummaryusername - new owner's user name.IChangelistSummary.setUsername(java.lang.String)public ChangelistStatus getStatus()
IChangelistSummarygetStatus in interface IChangelistSummarygetStatus in class ChangelistSummaryIChangelistSummary.getStatus()public void setStatus(ChangelistStatus status)
IChangelistSummarysetStatus in interface IChangelistSummarysetStatus in class ChangelistSummarypublic Date getDate()
IChangelistSummarygetDate in interface IChangelistSummarygetDate in class ChangelistSummaryIChangelistSummary.getDate()public void setDate(Date date)
IChangelistSummarysetDate in interface IChangelistSummarysetDate in class ChangelistSummarydate - new changelist dateIChangelistSummary.setDate(java.util.Date)public String getDescription()
IChangelistSummarygetDescription in interface IChangelistSummarygetDescription in class ChangelistSummaryIChangelistSummary.getDescription()public String setDescription(String description)
IChangelistSummarysetDescription in interface IChangelistSummarysetDescription in class ChangelistSummarydescription - non-null new description string.IChangelistSummary.setDescription(java.lang.String)public IServer getServer()
public void setServerImpl(Server serverImpl)
public List<IFileSpec> getFiles(boolean refresh) throws ConnectionException, RequestException, AccessException
IChangelistIf this is the first time this method has been called on this changelist, or if refresh is true, the file list is obtained from the server and copied locally to this object; otherwise, the local copy is returned.
Note that the actual file list is returned; this file list is guaranteed mutable and you can change it "live" (by, for example, deleting files from it (deleting files is, in fact, the only thing that makes sense from a Perforce point of view)). Such changes will only be reflected back to the server when a submit is done; adding files to this list results in undefined behavior.
The IFileSpec objects returned are not guaranteed to have any fields except depot path, version, and action valid (and, in fact, if it comes directly from the server, those are usually the only fields that are valid.
Note that the Perforce server side of the submit() processing expects all file lists to be in canonical depot path form; file specs in the associated submit file list that don't have a depot spec will be left untouched (this is a Perforce thing, not a P4Java thing).
This is one of the guaranteed "live" method on this interface, and will return the list as it exists when called (rather than when the underlying implementation object was created) if refresh is true. This can be an expensive method to evaluate, so don't use it willy-nilly.
getFiles in interface IChangelistrefresh - if true, get a new list from the server rather than return the
local copy.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerpublic List<IFileSpec> getFiles(boolean refresh, boolean bypassServer) throws ConnectionException, RequestException, AccessException
public InputStream getDiffs(DiffType diffType) throws ConnectionException, RequestException, AccessException
IChangelistThis is one of the guaranteed "live" method on this interface, and will return the diff output as it exists when called (rather than when the underlying implementation object was created). This can be an expensive method to evaluate, and can generate reams and reams (and reams) of output, so don't use it willy-nilly.
You should remember to close the returned InputStream when finished with the stream, in order to release the underlying io resources. Failure to do this may leave temporary files lying around or cause inefficient memory usage.
getDiffs in interface IChangelistConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.getDiffs(com.perforce.p4java.core.file.DiffType)public InputStream getDiffsStream(GetChangelistDiffsOptions opts) throws P4JavaException
IChangelistThis is one of the guaranteed "live" method on this interface, and will return the diff output as it exists when called (rather than when the underlying implementation object was created). This can be an expensive method to evaluate, and can generate reams and reams (and reams) of output, so don't use it willy-nilly.
You should remember to close the returned InputStream when finished with the stream, in order to release the underlying io resources. Failure to do this may leave temporary files lying around or cause inefficient memory usage.
getDiffsStream in interface IChangelistopts - GetChangelistDiffs object describing optional parameters; if null, no
options are set.P4JavaException - if any error occurs in the processing of this method.IChangelist.getDiffsStream(com.perforce.p4java.option.server.GetChangelistDiffsOptions)public List<String> getJobIds() throws ConnectionException, RequestException, AccessException
IChangelistNote that "associated" here usually means "fixed", but that is not always the case.
getJobIds in interface IChangelistConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.getJobIds()public List<String> getCachedJobIdList() throws ConnectionException, RequestException, AccessException
IChangelistgetCachedJobIdList in interface IChangelistConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.getCachedJobIdList()public List<IJob> getJobs() throws ConnectionException, RequestException, AccessException
IChangelistNote that "associated" here usually means "fixed", but that is not always the case.
getJobs in interface IChangelistConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.getJobs()public List<IFileSpec> submit(boolean reOpen, List<String> jobIds, String jobStatus) throws ConnectionException, RequestException, AccessException
IChangelistIf the submit is successful, the status of the underlying changelist will be updated to reflect the new status. Other fields will not be automatically updated and need to be refreshed with the refresh() method if you need to access them live.
Note that the list of filespecs returned from the submit will contain only summary filespecs for successful files -- generally only the depot path, action, and revisions fields will be valid; other fields may be null or undefined depending on the server and client implementations. That is, do not rely on the returned filespec list for anything other than depot paths.
Note also that any jobIds and / or job status arguments will override any jobIds already associated with this object on submission (i.e. jobs in the local object's job list).
submit in interface IChangelistreOpen - if true, reopen the submitted files for editing after a successful submit.jobIds - if non-null, contains a list of job IDs for jobs that will have their status
changed to fixed or "jobStatus", below. This list will override any existing
list attached to the changelist as a result of a refresh operation after
fixing a job, etc.jobStatus - if jobIds is non-null, contains a string to which
the jobs in the jobIds list will be set on a successful submit; if
null the jobs will be marked fixed.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.submit(boolean, java.util.List, java.lang.String)public List<IFileSpec> submit(SubmitOptions opts) throws P4JavaException
IChangelistIf the submit is successful, the status of the underlying changelist will be updated to reflect the new status. Other fields will not be automatically updated and need to be refreshed with the refresh() method if you need to access them live.
Note that the list of filespecs returned from the submit will contain only summary filespecs for successful files -- generally only the depot path, action, and revisions fields will be valid; other fields may be null or undefined depending on the server and client implementations. That is, do not rely on the returned filespec list for anything other than depot paths.
Note also that any jobIds and / or job status arguments given to the SubmitOptions argument will override any jobIds already associated with this object on submission (i.e. jobs in the local object's job list).
submit in interface IChangelistopts - SubmitOptions object describing optional parameters; if null, no
options are set.P4JavaException - if any error occurs in the processing of this method.IChangelist.submit(com.perforce.p4java.option.changelist.SubmitOptions)public void submit(SubmitOptions opts, IStreamingCallback callback, int key) throws P4JavaException
IChangelistNote that this method takes an IStreamingCallback parameter, and the results are sent to the user using the IStreamingCallback handleResult method; see the IStreamingCallback Javadoc for details. The payload passed to handleResult is usually the raw map gathered together deep in the RPC protocol layer, and the user is assumed to have the knowledge and technology to be able to parse it and use it.
submit in interface IChangelistopts - SubmitOptions object describing optional parameters; if null, no
options are set.callback - a non-null IStreamingCallback to be used to process the incoming
results.key - an opaque integer key that is passed to the IStreamingCallback callback
methods to identify the action as being associated with this specific
call.P4JavaException - if any error occurs in the processing of this method.IChangelist.submit(com.perforce.p4java.option.changelist.SubmitOptions,
com.perforce.p4java.server.callback.IStreamingCallback, int)public List<IFileSpec> submit(boolean reOpen) throws ConnectionException, RequestException, AccessException
IChangelistIf the submit is successful, the status of the underlying changelist will be updated to reflect the new status. Other fields will not be automatically updated and need to be refreshed with the refresh() method if you need to access them live.
Note that the list of filespecs returned from the submit will contain only summary filespecs for successful files -- generally only the depot path, action, and revisions fields will be valid; other fields may be null or undefined depending on the server and client implementations. That is, do not rely on the returned filespec list for anything other than depot paths.
submit in interface IChangelistreOpen - if true, reopen the submitted files for editing after a successful submit.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.submit(boolean)public void refresh()
throws ConnectionException,
RequestException,
AccessException
IServerResourceThe details of what "refreshable" means in this context are always object-dependent, but typically mean that "live" data and metadata will be updated from the server.
The results of calling this method on objects whose canRefresh method returns false are undefined (but will generally result in a UnimplementedError being thrown).
refresh in interface IChangelistrefresh in interface IServerResourcerefresh in class ServerResourceConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIServerResource.refresh()public void update()
throws ConnectionException,
RequestException,
AccessException
IServerResourceThe results of calling this method on objects whose canUpdate method returns false are undefined (but will generally result in a UnimplementedError being thrown).
update in interface IServerResourceupdate in class ServerResourceConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerServerResource.update()public void update(boolean force)
throws ConnectionException,
RequestException,
AccessException
IServerResourceNote, in order to force the change it may require super user / admin privileges to work properly. The results of calling this method on objects whose canUpdate method returns false are undefined (but will generally result in a UnimplementedError being thrown).
update in interface IServerResourceupdate in class ServerResourceforce - if true, force the update of the object on the server.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerServerResource.update(boolean)public void update(Options opts) throws ConnectionException, RequestException, AccessException
IServerResourceThe results of calling this method on objects whose canUpdate method returns false are undefined (but will generally result in a UnimplementedError being thrown).
update in interface IServerResourceupdate in class ServerResourceopts - Options object describing optional parameters; if null, no
options are set.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerServerResource.update(com.perforce.p4java.option.Options)public void updateOnServer(boolean refresh)
throws ConnectionException,
RequestException,
AccessException
IChangelistupdateOnServer in interface IChangelistrefresh - if true, does a refresh() behind the scenes after a successful return.ConnectionException - if the Perforce server is unreachable or is not
connected.RequestException - if the Perforce server encounters an error during
its processing of the requestAccessException - if the Perforce server denies access to the callerIChangelist.updateOnServer(boolean)Copyright © 2017 Perforce Software. All Rights Reserved.