001
014
015 package com.liferay.portal.kernel.nio;
016
017 import java.io.IOException;
018
019 import java.nio.file.FileStore;
020 import java.nio.file.FileSystem;
021 import java.nio.file.Path;
022 import java.nio.file.PathMatcher;
023 import java.nio.file.WatchService;
024 import java.nio.file.attribute.UserPrincipalLookupService;
025 import java.nio.file.spi.FileSystemProvider;
026
027 import java.util.Iterator;
028 import java.util.Set;
029
030
033 public class FileSystemWrapper extends FileSystem {
034
035 public FileSystemWrapper(
036 FileSystem fileSystem, FileSystemProvider fileSystemProvider) {
037
038 _fileSystem = fileSystem;
039 _fileSystemProvider = fileSystemProvider;
040 }
041
042 @Override
043 public void close() throws IOException {
044 _fileSystem.close();
045 }
046
047 @Override
048 public Iterable<FileStore> getFileStores() {
049 return _fileSystem.getFileStores();
050 }
051
052 @Override
053 public Path getPath(String first, String... more) {
054 return new PathWrapper(_fileSystem.getPath(first, more), this);
055 }
056
057 @Override
058 public PathMatcher getPathMatcher(String syntaxAndPattern) {
059 return _fileSystem.getPathMatcher(syntaxAndPattern);
060 }
061
062 @Override
063 public Iterable<Path> getRootDirectories() {
064 Iterable<Path> iterable = _fileSystem.getRootDirectories();
065
066 final Iterator<Path> iterator = iterable.iterator();
067
068 return new Iterable<Path>() {
069
070 @Override
071 public Iterator<Path> iterator() {
072 return new Iterator<Path>() {
073
074 @Override
075 public boolean hasNext() {
076 return iterator.hasNext();
077 }
078
079 @Override
080 public Path next() {
081 return new PathWrapper(
082 iterator.next(), FileSystemWrapper.this);
083 }
084
085 @Override
086 public void remove() {
087 iterator.remove();
088 }
089
090 };
091 }
092
093 };
094 }
095
096 @Override
097 public String getSeparator() {
098 return _fileSystem.getSeparator();
099 }
100
101 @Override
102 public UserPrincipalLookupService getUserPrincipalLookupService() {
103 return _fileSystem.getUserPrincipalLookupService();
104 }
105
106 @Override
107 public boolean isOpen() {
108 return _fileSystem.isOpen();
109 }
110
111 @Override
112 public boolean isReadOnly() {
113 return _fileSystem.isReadOnly();
114 }
115
116 @Override
117 public WatchService newWatchService() throws IOException {
118 return _fileSystem.newWatchService();
119 }
120
121 @Override
122 public FileSystemProvider provider() {
123 return _fileSystemProvider;
124 }
125
126 @Override
127 public Set<String> supportedFileAttributeViews() {
128 return _fileSystem.supportedFileAttributeViews();
129 }
130
131 private final FileSystem _fileSystem;
132 private final FileSystemProvider _fileSystemProvider;
133
134 }