/***************************************************************************** * 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; } }