01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.so6.core.command.fs;
34:
35: import org.libresource.so6.core.WsConnection;
36: import org.libresource.so6.core.engine.DBType;
37: import org.libresource.so6.core.engine.util.Base64;
38:
39: import java.io.File;
40: import java.io.IOException;
41: import java.io.OutputStreamWriter;
42:
43: public class Rename extends FsCommand {
44: private static final long serialVersionUID = 3;
45: protected String newpath;
46:
47: public Rename(long ticket, String path, String wsName, long time,
48: boolean conflict, String attachement, String newPath) {
49: super (ticket, path, wsName, time, conflict, attachement);
50: this .newpath = newPath;
51: }
52:
53: public Rename(String path, WsConnection ws, String newpath) {
54: super (path, ws);
55: this .newpath = newpath;
56: }
57:
58: public String toString() {
59: return "Rename(" + path + "," + newpath + ")";
60: }
61:
62: public boolean equals(Object o) {
63: if (o instanceof Rename) {
64: Rename r = (Rename) o;
65:
66: return path.equals(r.path) && newpath.equals(r.newpath);
67: } else {
68: return false;
69: }
70: }
71:
72: public String getNewPath() {
73: return newpath;
74: }
75:
76: public void setNewPath(String path) {
77: this .newpath = path;
78: }
79:
80: public void execute(String dir, DBType dbt) throws Exception {
81: File f = new File(dir + File.separator + path);
82: File f2 = new File(dir + File.separator + newpath);
83:
84: if (!f.renameTo(f2)) {
85: throw new Exception("Cannot rename " + f + " to " + f2);
86: }
87:
88: int currenttype = dbt.getType(path);
89: dbt.remove(path);
90: dbt.add(newpath, currenttype);
91: }
92:
93: public void toXML(OutputStreamWriter osw) throws IOException {
94: super .toXML(osw);
95: osw.write("<newpath>"
96: + Base64.encodeBytes(newpath.getBytes("UTF-8"))
97: + "</newpath>");
98: }
99: }
|