Source:
<code>private void validate() { if ((useDiff || useRdiff) && deleteMissing) { throw new IllegalArgumentException("-delete and -diff/-rdiff are " + "mutually exclusive. The -delete option will be ignored."); } if (!atomicCommit && atomicWorkPath != null) { throw new IllegalArgumentException( "-tmp work-path can only be specified along with -atomic"); } if (syncFolder && atomicCommit) { throw new IllegalArgumentException("Atomic commit can't be used with " + "sync folder or overwrite options"); } if (deleteMissing && !(overwrite || syncFolder)) { throw new IllegalArgumentException("Delete missing is applicable " + "only with update or overwrite options"); } if (deleteUseTrash && !deleteMissing) { <START> throw new IllegalArgumentException("Delete useTrash is applicable " <END> + "only with delete option"); } if (overwrite && syncFolder) { throw new IllegalArgumentException("Overwrite and update options are " + "mutually exclusive"); } if (!syncFolder && append) { throw new IllegalArgumentException( "Append is valid only with update options"); } if (skipCRC && append) { throw new IllegalArgumentException( "Append is disallowed when skipping CRC"); } if (!syncFolder && (useDiff || useRdiff)) { throw new IllegalArgumentException( "-diff/-rdiff is valid only with -update option"); } if (useDiff || useRdiff) { if (StringUtils.isBlank(fromSnapshot) || StringUtils.isBlank(toSnapshot)) { throw new IllegalArgumentException( "Must provide both the starting and ending " + "snapshot names for -diff/-rdiff"); } } if (useDiff && useRdiff) { throw new IllegalArgumentException( "-diff and -rdiff are mutually exclusive"); } if (verboseLog && logPath == null) { throw new IllegalArgumentException( "-v is valid only with -log option"); } }</code><technical_language>"Option -useTrash accompanied -delete"</technical_language>

Target:
private void validate() { if ((useDiff || useRdiff) && deleteMissing) { throw new IllegalArgumentException("-delete and -diff/-rdiff are " + "mutually exclusive. The -delete option will be ignored."); } if (!atomicCommit && atomicWorkPath != null) { throw new IllegalArgumentException( "-tmp work-path can only be specified along with -atomic"); } if (syncFolder && atomicCommit) { throw new IllegalArgumentException("Atomic commit can't be used with " + "sync folder or overwrite options"); } if (deleteMissing && !(overwrite || syncFolder)) { throw new IllegalArgumentException("Delete missing is applicable " + "only with update or overwrite options"); } if (deleteUseTrash && !deleteMissing) { throw new IllegalArgumentException("Option -useTrash must be " + "accompanied by -delete"); } if (overwrite && syncFolder) { throw new IllegalArgumentException("Overwrite and update options are " + "mutually exclusive"); } if (!syncFolder && append) { throw new IllegalArgumentException( "Append is valid only with update options"); } if (skipCRC && append) { throw new IllegalArgumentException( "Append is disallowed when skipping CRC"); } if (!syncFolder && (useDiff || useRdiff)) { throw new IllegalArgumentException( "-diff/-rdiff is valid only with -update option"); } if (useDiff || useRdiff) { if (StringUtils.isBlank(fromSnapshot) || StringUtils.isBlank(toSnapshot)) { throw new IllegalArgumentException( "Must provide both the starting and ending " + "snapshot names for -diff/-rdiff"); } } if (useDiff && useRdiff) { throw new IllegalArgumentException( "-diff and -rdiff are mutually exclusive"); } if (verboseLog && logPath == null) { throw new IllegalArgumentException( "-v is valid only with -log option"); } }