public interface IServerResource
The general intention here is to allow the underlying P4Java plumbing to use lightweight metadata-only objects where possible (or full-strength objects only partially-implemented or filled-out), and allow the consumer to determine the status of the underlying object and act accordingly.
This approach requires all participating P4Java interfaces to spell out what both "updateable" and "refreshable" mean, and whether the associated methods are implemented or not.
Modifier and Type | Method and Description |
---|---|
boolean |
canRefresh()
Returns true if the underlying object is refreshable from the Perforce
server.
|
boolean |
canUpdate()
Returns true if the underlying object can be updated back to (or on) the
associated Perforce server.
|
void |
clearRawFields()
Create new map and clear all fields.
|
void |
complete()
Old method called used to call refresh when completing a spec.
|
java.lang.Object |
getRawField(java.lang.String field)
Fetch a value from the raw spec map.
|
java.util.Map<java.lang.String,java.lang.Object> |
getRawFields()
Fetch the whole raw spec map.
|
boolean |
hasRawField(java.lang.String field)
Look for field in map.
|
void |
refresh()
Refresh the underlying object from the Perforce server.
|
void |
setRawField(java.lang.String field,
java.lang.Object value)
Enter Key/Pair for a spec field.
|
void |
setRawFields(java.util.Map<java.lang.String,java.lang.Object> map)
Add all elements in a map to the spec
|
void |
setServer(IServer server)
Set the server associated with this resource.
|
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.
|
boolean canRefresh()
The 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. This is especially useful on objects like changelists, where the underlying server-side data may change often outside P4Java's control.
void refresh() throws ConnectionException, RequestException, AccessException
The 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).
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 callerboolean canUpdate()
void complete() throws ConnectionException, RequestException, AccessException
ConnectionException
- when there is an error talking to the Helix serverRequestException
- when there is a problem with the data provided in the requestAccessException
- when access to the branch command is not authorisedvoid update() throws ConnectionException, RequestException, AccessException
The results of calling this method on objects whose canUpdate method returns false are undefined (but will generally result in a UnimplementedError being thrown).
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 callervoid update(boolean force) throws ConnectionException, RequestException, AccessException
Note, 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).
force
- 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 callervoid update(Options opts) throws ConnectionException, RequestException, AccessException
The results of calling this method on objects whose canUpdate method returns false are undefined (but will generally result in a UnimplementedError being thrown).
opts
- 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 callervoid setServer(IServer server)
server
- IServer to be used for refresh, update, etc.java.lang.Object getRawField(java.lang.String field)
field
- spec fieldvoid setRawField(java.lang.String field, java.lang.Object value)
field
- field kayvalue
- valuejava.util.Map<java.lang.String,java.lang.Object> getRawFields()
void setRawFields(java.util.Map<java.lang.String,java.lang.Object> map)
map
- field mapvoid clearRawFields()
boolean hasRawField(java.lang.String field)
field
- field name