View Javadoc

1   package twcsckernel.serverKernel.utils;
2   
3   import twcsckernel.projectbase.io.FileDescriptor;
4   import twcsckernel.projectbase.io.FsChangeDescriptor;
5   import twcsckernel.projectbase.io.UserRootPathManager;
6   
7   /***
8    * Klasa służy dostosowywaniu zdarzeń o zmianach w systemie plików względem
9    * managera ścieżki root danego użytkownika.
10   * 
11   * @author VMD Group
12   * 
13   */
14  public class RootAdjuster {
15  	/***
16  	 * Dostosowanie ścieżek dla deskryptora zmian
17  	 * 
18  	 * @param fsDescriptor -
19  	 *            deskryptor zmian
20  	 * @param rootManager -
21  	 *            manager ścieżki root używany do "obróbki"
22  	 * @return - dostosowany przez rootManagera deskryptor zmiany
23  	 */
24  	public static FsChangeDescriptor adjustRootPath(
25  			FsChangeDescriptor fsDescriptor, UserRootPathManager rootManager) {
26  		FsChangeDescriptor result = new FsChangeDescriptor(fsDescriptor
27  				.getChangeType());
28  		if (fsDescriptor.getSource() != null) {
29  			String tmpStr = adjustRootPath(fsDescriptor.getSource(),
30  					rootManager);
31  			if (tmpStr == null)
32  				return null;
33  			result.setSource(tmpStr);
34  		}
35  		if (fsDescriptor.getTarget() != null) {
36  			String tmpStr = adjustRootPath(fsDescriptor.getTarget(),
37  					rootManager);
38  			if (tmpStr == null)
39  				return null;
40  			result.setTarget(tmpStr);
41  		}
42  		if (fsDescriptor.getChangeInfo() != null) {
43  			FileDescriptor tmp = adjustRootPath(fsDescriptor.getChangeInfo(),
44  					rootManager);
45  			if (tmp == null)
46  				return null;
47  			result.setChangeInfo(tmp);
48  		}
49  		return result;
50  	}
51  
52  	/***
53  	 * Dostosowanie ścieżek dla deskryptora pliku
54  	 * 
55  	 * @param changeInfo -
56  	 *            deskryptor pliku
57  	 * @param rootManager -
58  	 *            manager ścieżki root używany do "obróbki"
59  	 * @return - dostosowany przez rootManagera deskryptor pliku
60  	 */
61  	public static FileDescriptor adjustRootPath(FileDescriptor changeInfo,
62  			UserRootPathManager rootManager) {
63  		String tmp = adjustRootPath(changeInfo.getPath(), rootManager);
64  		if (tmp == null)
65  			return null;
66  		FileDescriptor result = new FileDescriptor();
67  		result.setPath(tmp);
68  		result.setHidden(changeInfo.isHidden());
69  		result.setLastModified(changeInfo.getLastModified());
70  		result.setIsFile(changeInfo.isFile());
71  		result.setLength(changeInfo.getLength());
72  		result.setName(changeInfo.getName());
73  		return result;
74  	}
75  
76  	/***
77  	 * Dostosowanie podanej ścieżki absolutnej przez manager ścieżki root
78  	 * 
79  	 * @param absolutePath -
80  	 *            ścieżka absolutna do dostosowania
81  	 * @param rootManager -
82  	 *            manager ścieżki root używany do "obróbki"
83  	 * @return - ścieżka dostosowana przez rootManagera
84  	 */
85  	public static String adjustRootPath(String absolutePath,
86  			UserRootPathManager rootManager) {
87  		return rootManager.getUserAbsolutePath(absolutePath);
88  	}
89  }