##### Commons VFS

- Overview
- Download and Build
- 3rd party plugins
- Using the API
- API JavaDocs
- File Systems
- Ant Tasks
- Wiki

##### Development

- Test Server
- Mailing Lists
- Issue Tracking
- Source Repository
- To Do List

##### Project Documentation

- About
- Project Info
- Project Reports
  - JavaDocs
  - JavaDoc Report
  - JavaDoc Warnings Report
  - Unit Tests
  - Source Xref
  - Test Xref
  - Project License
  - Task List
- Development Process

##### Commons

- Home
- Components
- Sandbox
- Dormant
- Volunteering
- Contributing Patches
- Building Components
- Releasing Components
- Wiki

##### Legend

- External Link
- Opens in a new window

## Todos

Class | Class Todos Count | Method with Todos
--- | --- | ---
org.apache.commons.vfs.FileSelectInfo | 1 | 0
org.apache.commons.vfs.FileSystem | 0 | 2
org.apache.commons.vfs.impl.VirtualFileSystem | 1 | 0
org.apache.commons.vfs.provider.AbstractFileObject | 2 | 1
org.apache.commons.vfs.provider.DelegateFileObject | 1 | 0
org.apache.commons.vfs.provider.LocalFileProvider | 0 | 1
org.apache.commons.vfs.provider.http.HttpFileObject | 1 | 0
org.apache.commons.vfs.provider.url.UrlFileObject | 2 | 0
org.apache.commons.vfs.tasks.AbstractSyncTask | 7 | 0
org.apache.commons.vfs.tasks.CopyTask | 1 | 0
org.apache.commons.vfs.tasks.DeleteTask | 1 | 0
org.apache.commons.vfs.tasks.MoveTask | 1 | 0

### org.apache.commons.vfs.FileSelectInfo

Class Todos
Rename this interface, as it is used by both FileSelector and FileVisitor.

### org.apache.commons.vfs.FileSystem

Method Todos
hasCapability(): Move this to another interface, so that set of capabilities can be queried.

Method Todos
replicateFile(): Add options to indicate whether the caller is happy to deal with extra files being present locally (eg if the file has been replicated previously), or whether the caller expects only the selected files to be present.

### org.apache.commons.vfs.impl.VirtualFileSystem

Class Todos
Handle nested junctions.

### org.apache.commons.vfs.provider.AbstractFileObject

Class Todos
Chop this class up - move all the protected methods to several interfaces, so that structure and content can be separately overridden.
Check caps in methods like getChildren(), etc, and give better error messages (eg 'this file type does not support listing children', vs 'this is not a folder')

Method Todos
delete(): This will not fail if this is a non-empty folder.

### org.apache.commons.vfs.provider.DelegateFileObject

Class Todos
Extract subclass that overlays the children

### org.apache.commons.vfs.provider.LocalFileProvider

Method Todos
isAbsoluteLocalName(): Move this to a general file name parser interface.

### org.apache.commons.vfs.provider.http.HttpFileObject

Class Todos
status codes

### org.apache.commons.vfs.provider.url.UrlFileObject

Class Todos
Implement set lastModified and get/set attribute
Implement getOutputStream()

### org.apache.commons.vfs.tasks.AbstractSyncTask

Class Todos
Deal with case where dest file maps to a child of one of the source files
Deal with case where dest file already exists and is incorrect type (not file, not a folder)
Use visitors
Add default excludes
Allow selector, mapper, filters, etc to be specified.
Handle source/dest directories as well
Allow selector to be specified for choosing which dest files to sync

### org.apache.commons.vfs.tasks.CopyTask

Class Todos
Copy folders that do not contain files

### org.apache.commons.vfs.tasks.DeleteTask

Class Todos
Allow selector to be specified.

### org.apache.commons.vfs.tasks.MoveTask

Class Todos
Delete matching folders