/** * */ package com.perforce.p4java.impl.generic.client; import com.perforce.p4java.client.IClientSummary.IClientSubmitOptions; /** * Simple generic IClientSubmitOptions implementation class. Attempts * to enforce the mutual-exclusivity of the options, but this can easily * be circumvented. */ public class ClientSubmitOptions implements IClientSubmitOptions { private boolean submitunchanged = false; private boolean submitunchangedReopen = false; private boolean revertunchanged = false; private boolean revertunchangedReopen = false; private boolean leaveunchanged = false; private boolean leaveunchangedReopen = false; /** * Default constructor; sets all fields to false. */ public ClientSubmitOptions() { } /** * Attempts to construct a ClientSubmitOptions object from a typical p4 cmd options string, * e.g. "revertunchanged+reopen", or from a map returned from the * server (where it's more commonly in the format "revertunchangedReopen". * If optString is null, this is equivalent to calling the default constructor.<p> * * Note that the optString parser is fairly permissive in what it will accept; * for example, the string "submitunchanged submitunchanged+reopen" is accepted * just fine even though it's a little redundant, and no real attempt is made to * enforce the mutual exclusivity of the options. */ public ClientSubmitOptions(String optString) { if (optString != null) { String opts[] = optString.split(" "); for (String str : opts) { if (str.equalsIgnoreCase(SUBMIT_UNCHANGED)) { this.submitunchanged = true; } else if (str.equalsIgnoreCase(SUBMIT_UNCHANGED_REOPEN) || str.equalsIgnoreCase(SUBMIT_UNCHANGED + "Reopen")) { this.submitunchangedReopen = true; this.submitunchanged = true; } else if (str.equalsIgnoreCase(REVERT_UNCHANGED)) { this.revertunchanged = true; } else if (str.equalsIgnoreCase(REVERT_UNCHANGED_REOPEN) || str.equalsIgnoreCase(REVERT_UNCHANGED + "Reopen")) { this.revertunchangedReopen = true; this.revertunchanged = true; } else if (str.equalsIgnoreCase(LEAVE_UNCHANGED)) { this.leaveunchanged = true; } else if (str.equalsIgnoreCase(LEAVE_UNCHANGED_REOPEN) || str.equalsIgnoreCase(LEAVE_UNCHANGED + "Reopen")) { this.leaveunchangedReopen = true; this.leaveunchanged = true; } } } } /** * Explicit-value constructor. Note that nonsensical constructs * like submitunchanged = false and submitunchangedReopen = true * are accepted silently; also, no attempt is made to enforce * mutual exclusivity here. */ public ClientSubmitOptions(boolean submitunchanged, boolean submitunchangedReopen, boolean revertunchanged, boolean revertunchangedReopen, boolean leaveunchanged, boolean leaveunchangedReopen) { this.submitunchanged = submitunchanged; this.submitunchangedReopen = submitunchangedReopen; this.revertunchanged = revertunchanged; this.revertunchangedReopen = revertunchangedReopen; this.leaveunchanged = leaveunchanged; this.leaveunchangedReopen = leaveunchangedReopen; } /** * Return a Perforce-standard representation of these options. * This string is in the same format as used by the * ClientSubmitOptions(String optionsString) constructor. * Mirrors p4 cmd's behaviour in omitting non-set values. */ public String toString() { return ((this.submitunchanged ? (SUBMIT_UNCHANGED + (this.submitunchangedReopen ? REOPEN : "") + " ") : "") + (this.revertunchanged ? (REVERT_UNCHANGED + (this.revertunchangedReopen ? REOPEN : "") + " ") : "") + (this.leaveunchanged ? (LEAVE_UNCHANGED + (this.leaveunchangedReopen ? REOPEN : "") + " ") : "")).trim(); } public boolean isSubmitunchanged() { return submitunchanged; } public void setSubmitunchanged(boolean submitunchanged) { resetOptions(); this.submitunchanged = submitunchanged; } public boolean isSubmitunchangedReopen() { return submitunchangedReopen; } public void setSubmitunchangedReopen(boolean submitunchangedReopen) { resetOptions(); this.submitunchangedReopen = submitunchangedReopen; } public boolean isRevertunchanged() { return revertunchanged; } public void setRevertunchanged(boolean revertunchanged) { resetOptions(); this.revertunchanged = revertunchanged; } public boolean isRevertunchangedReopen() { return revertunchangedReopen; } public void setRevertunchangedReopen(boolean revertunchangedReopen) { resetOptions(); this.revertunchangedReopen = revertunchangedReopen; } public boolean isLeaveunchanged() { return leaveunchanged; } public void setLeaveunchanged(boolean leaveunchanged) { resetOptions(); this.leaveunchanged = leaveunchanged; } public boolean isLeaveunchangedReopen() { return leaveunchangedReopen; } public void setLeaveunchangedReopen(boolean leaveunchangedReopen) { resetOptions(); this.leaveunchangedReopen = leaveunchangedReopen; } protected void resetOptions() { this.leaveunchanged = false; this.leaveunchangedReopen = false; this.revertunchanged = false; this.revertunchangedReopen = false; this.submitunchanged = false; this.submitunchangedReopen = false; } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 19903 | stuartrowe |
Branching //guest/perforce_software/p4java/... to //guest/stuartrowe/p4java/... |
||
//guest/perforce_software/p4java/r14.1/src/main/java/com/perforce/p4java/impl/generic/client/ClientSubmitOptions.java | |||||
#1 | 12541 | Matt Attaway | Initial add of the 14.1 p4java source code |