/*
* (c) Copyright 2010-2011 AgileBirds
*
* This file is part of OpenFlexo.
*
* OpenFlexo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenFlexo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.netbeans.lib.cvsclient.request;
import java.io.File;
import org.netbeans.lib.cvsclient.file.FileDetails;
import org.netbeans.lib.cvsclient.file.FileMode;
/**
* Sends the server a copy of a locally modified file.
*
* @author Robert Greig
*/
public class ModifiedRequest extends Request {
/**
* The file details
*/
private FileDetails fileDetails;
/**
* Construct a new modified request.
*
* @param theFile
* the file that has been modified
*/
public ModifiedRequest(File file, boolean isBinary) {
fileDetails = new FileDetails(file, isBinary);
}
/**
* Get the request String that will be passed to the server
*
* @return the request String
* @throws UnconfiguredRequestException
* if the request has not been properly configured
*/
@Override
public String getRequestString() throws UnconfiguredRequestException {
if (fileDetails == null) {
throw new UnconfiguredRequestException("FileDetails is null in " + "ModifiedRequest");
}
final FileMode mode = new FileMode(fileDetails.getFile());
return "Modified " + fileDetails.getFile().getName() + "\n" + // NOI18N
mode.toString() + "\n"; // NOI18N
}
/**
* Is a response expected from the server?
*
* @return true if a response is expected, false if no response if expected
*/
@Override
public boolean isResponseExpected() {
return false;
}
/**
* 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.
*/
@Override
public FileDetails getFileForTransmission() {
return fileDetails;
}
}