KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > cvsclient > response > CopyFileResponse


1 /*****************************************************************************
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14
15  * The Original Software is the CVS Client Library.
16  * The Initial Developer of the Original Software is Robert Greig.
17  * Portions created by Robert Greig are Copyright (C) 2000.
18  * All Rights Reserved.
19
20  * Contributor(s): Robert Greig.
21  *****************************************************************************/

22 package org.netbeans.lib.cvsclient.response;
23
24 import java.io.*;
25
26 import org.netbeans.lib.cvsclient.util.*;
27
28 /**
29  * This means that the server wants the local machine to copy a file in the
30  * local file space. This is usually requested after a conflict (to allow the
31  * user to keep the original file unaltered).
32  * @author Robert Greig
33  */

34 class CopyFileResponse implements Response {
35     /**
36      * Process the data for the response.
37      * @param dis the data inputstream allowing the client to read the server's
38      * response. Note that the actual response name has already been read
39      * and the input stream is positioned just before the first argument, if
40      * any.
41      */

42     public void process(LoggedDataInputStream dis, ResponseServices services)
43             throws ResponseException {
44         try {
45 // System.err.println("Got copy file response.");
46
String JavaDoc localPath = dis.readLine();
47 // System.err.println("LocalPath is: " + localPath);
48
String JavaDoc repositoryPath = dis.readLine();
49 // System.err.println("Repository path is: " + repositoryPath);
50
String JavaDoc newname = dis.readLine();
51 // System.err.println("New name is: " + newname);
52
final String JavaDoc absPath = services.convertPathname(localPath, repositoryPath);
53             if (services.getGlobalOptions().isExcluded(new File(absPath))) {
54                 return;
55             }
56             if (!services.getGlobalOptions().isDoNoChanges()) {
57                 services.removeLocalFile(new File(new File(absPath).getParentFile(), newname).getAbsolutePath());
58                 services.renameLocalFile(absPath, newname);
59             }
60         }
61         catch (EOFException ex) {
62             throw new ResponseException(ex, ResponseException.getLocalMessage("CommandException.EndOfFile", null)); //NOI18N
63
}
64         catch (IOException ex) {
65             throw new ResponseException(ex);
66         }
67     }
68
69     /**
70      * Is this a terminal response, i.e. should reading of responses stop
71      * after this response. This is true for responses such as OK or
72      * an error response
73      */

74     public boolean isTerminalResponse() {
75         return false;
76     }
77 }
78
Popular Tags