blob: 994eb3dbf43b8de2dbc6505bfe62b8fd84086591 [file] [log] [blame]
/*****************************************************************************
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License Version
* 1.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is available at http://www.sun.com/
*
* The Original Code is the CVS Client Library.
* The Initial Developer of the Original Code is Robert Greig.
* Portions created by Robert Greig are Copyright (C) 2000.
* All Rights Reserved.
*
* Contributor(s): Robert Greig.
*****************************************************************************/
package org.netbeans.lib.cvsclient.request;
import org.netbeans.lib.cvsclient.file.FileDetails;
import org.netbeans.lib.cvsclient.file.FileObject;
import org.jetbrains.annotations.NonNls;
/**
* Sends the server a copy of a locally modified file.
* @author Robert Greig
*/
public final class ModifiedRequest extends AbstractFileStateRequest {
// Fields =================================================================
private final FileDetails fileDetails;
private final boolean writable;
// Setup ==================================================================
public ModifiedRequest(FileObject fileObject, boolean isBinary, boolean writable) {
super(fileObject);
this.fileDetails = new FileDetails(fileObject, isBinary);
this.writable = writable;
}
// Implemented ============================================================
/**
* Get the request String that will be passed to the server
* @return the request String
*/
public String getRequestString() {
@NonNls final StringBuffer request = new StringBuffer();
request.append("Modified ");
request.append(getFileName());
request.append('\n');
if (writable) {
request.append("u=rw,g=r,o=r");
}
else {
request.append("u=r,g=r,o=r");
}
request.append('\n');
return request.toString();
}
/**
* If a file transmission is required, get the file object representing
* the file to transmit after the request string. The default
* implementation returns null, indicating no file is to be transmitted
* @return the file details object, if one should be transmitted, or null
* if no file object is to be transmitted.
*/
public FileDetails getFileForTransmission() {
return fileDetails;
}
}