001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.commons.vfs2.impl;
018
019import java.net.URL;
020import java.util.Iterator;
021import java.util.List;
022
023import org.apache.commons.vfs2.FileContent;
024import org.apache.commons.vfs2.FileName;
025import org.apache.commons.vfs2.FileObject;
026import org.apache.commons.vfs2.FileSelector;
027import org.apache.commons.vfs2.FileSystem;
028import org.apache.commons.vfs2.FileSystemException;
029import org.apache.commons.vfs2.FileType;
030import org.apache.commons.vfs2.NameScope;
031import org.apache.commons.vfs2.operations.FileOperations;
032
033/**
034 * Base class to build a fileObject decoration.
035 */
036public class DecoratedFileObject implements FileObject {
037    private final FileObject decoratedFileObject;
038
039    public DecoratedFileObject(final FileObject decoratedFileObject) {
040        super();
041        this.decoratedFileObject = decoratedFileObject;
042    }
043
044    @Override
045    public boolean canRenameTo(final FileObject newfile) {
046        return decoratedFileObject.canRenameTo(newfile);
047    }
048
049    @Override
050    public void close() throws FileSystemException {
051        decoratedFileObject.close();
052    }
053
054    @Override
055    public int compareTo(final FileObject fo) {
056        return decoratedFileObject.compareTo(fo);
057    }
058
059    @Override
060    public void copyFrom(final FileObject srcFile, final FileSelector selector) throws FileSystemException {
061        decoratedFileObject.copyFrom(srcFile, selector);
062    }
063
064    @Override
065    public void createFile() throws FileSystemException {
066        decoratedFileObject.createFile();
067    }
068
069    @Override
070    public void createFolder() throws FileSystemException {
071        decoratedFileObject.createFolder();
072    }
073
074    @Override
075    public boolean delete() throws FileSystemException {
076        return decoratedFileObject.delete();
077    }
078
079    @Override
080    public int delete(final FileSelector selector) throws FileSystemException {
081        return decoratedFileObject.delete(selector);
082    }
083
084    @Override
085    public int deleteAll() throws FileSystemException {
086        return decoratedFileObject.deleteAll();
087    }
088
089    @Override
090    public boolean exists() throws FileSystemException {
091        return decoratedFileObject.exists();
092    }
093
094    @Override
095    public FileObject[] findFiles(final FileSelector selector) throws FileSystemException {
096        return decoratedFileObject.findFiles(selector);
097    }
098
099    @Override
100    public void findFiles(final FileSelector selector, final boolean depthwise, final List<FileObject> selected)
101            throws FileSystemException {
102        decoratedFileObject.findFiles(selector, depthwise, selected);
103    }
104
105    @Override
106    public FileObject getChild(final String name) throws FileSystemException {
107        return decoratedFileObject.getChild(name);
108    }
109
110    @Override
111    public FileObject[] getChildren() throws FileSystemException {
112        return decoratedFileObject.getChildren();
113    }
114
115    @Override
116    public FileContent getContent() throws FileSystemException {
117        return decoratedFileObject.getContent();
118    }
119
120    public FileObject getDecoratedFileObject() {
121        return decoratedFileObject;
122    }
123
124    @Override
125    public FileOperations getFileOperations() throws FileSystemException {
126        return decoratedFileObject.getFileOperations();
127    }
128
129    @Override
130    public FileSystem getFileSystem() {
131        return decoratedFileObject.getFileSystem();
132    }
133
134    @Override
135    public String getPublicURIString() {
136        return decoratedFileObject.getPublicURIString();
137    }
138
139    @Override
140    public FileName getName() {
141        return decoratedFileObject.getName();
142    }
143
144    @Override
145    public FileObject getParent() throws FileSystemException {
146        return decoratedFileObject.getParent();
147    }
148
149    @Override
150    public FileType getType() throws FileSystemException {
151        return decoratedFileObject.getType();
152    }
153
154    @Override
155    public URL getURL() throws FileSystemException {
156        return decoratedFileObject.getURL();
157    }
158
159    @Override
160    public boolean isAttached() {
161        return decoratedFileObject.isAttached();
162    }
163
164    @Override
165    public boolean isContentOpen() {
166        return decoratedFileObject.isContentOpen();
167    }
168
169    @Override
170    public boolean isExecutable() throws FileSystemException {
171        return decoratedFileObject.isExecutable();
172    }
173
174    @Override
175    public boolean isFile() throws FileSystemException {
176        return decoratedFileObject.isFile();
177    }
178
179    @Override
180    public boolean isFolder() throws FileSystemException {
181        return decoratedFileObject.isFolder();
182    }
183
184    @Override
185    public boolean isHidden() throws FileSystemException {
186        return decoratedFileObject.isHidden();
187    }
188
189    @Override
190    public boolean isReadable() throws FileSystemException {
191        return decoratedFileObject.isReadable();
192    }
193
194    @Override
195    public boolean isWriteable() throws FileSystemException {
196        return decoratedFileObject.isWriteable();
197    }
198
199    @Override
200    public Iterator<FileObject> iterator() {
201        return decoratedFileObject.iterator();
202    }
203
204    @Override
205    public void moveTo(final FileObject destFile) throws FileSystemException {
206        decoratedFileObject.moveTo(destFile);
207    }
208
209    @Override
210    public void refresh() throws FileSystemException {
211        decoratedFileObject.refresh();
212    }
213
214    @Override
215    public FileObject resolveFile(final String path) throws FileSystemException {
216        return decoratedFileObject.resolveFile(path);
217    }
218
219    @Override
220    public FileObject resolveFile(final String name, final NameScope scope) throws FileSystemException {
221        return decoratedFileObject.resolveFile(name, scope);
222    }
223
224    @Override
225    public boolean setExecutable(final boolean executable, final boolean ownerOnly) throws FileSystemException {
226        return decoratedFileObject.setExecutable(executable, ownerOnly);
227    }
228
229    @Override
230    public boolean setReadable(final boolean readable, final boolean ownerOnly) throws FileSystemException {
231        return decoratedFileObject.setReadable(readable, ownerOnly);
232    }
233
234    @Override
235    public boolean setWritable(final boolean writable, final boolean ownerOnly) throws FileSystemException {
236        return decoratedFileObject.setWritable(writable, ownerOnly);
237    }
238
239    @Override
240    public String toString() {
241        return decoratedFileObject.toString();
242    }
243
244}