Apache VFS(6): 几个重要的概念性接口
本系列文章导航Apache VFS(1): 基本介绍
Apache VFS(2): 文件的监听和监控
Apache VFS(3): 文件过滤器和选择器
Apache VFS(4): 事件
Apache VFS(5): 使用它!
Apache VFS(6): 几个重要的概念性接口
Apache VFS(7): 文件管理器解析文件的方法
理解Apache VFS的概念性接口很重要,因为Apache VFS例子太少,如果不仔细研究的话,根本农不清楚:
VfsComponent接口
这个接口号称是用来管理所有VFS组件的生命周期的。方法比较简单:
[*]init 用来初始化组件
[*]close 用来关闭组件
[*]setContext(VfsComponentContext ctx) 设置组件上下文,注意它维护了一个组件上下文:VfsComponentContext
[*]setLogger 设置日志
有一个抽象类实现了这个接口AbstractVfsComponent抽象类,这个抽象类加了一个方法getContext()来获得组件上下文。AbstractVfsComponent抽象类很重要,有几个重要的类继承它:
[*]AbstractFilesCache
[*]AbstractFileSystem
[*]AbstractVfsContainer
[*]DefaultFileReplicator
VfsComponentContext接口
这个接口允许VFS组件访问他们需要的服务,例如
FileReplicator接口
这个接口的任务是创建文件的本地复制品。只有一个方法replicateFile(FileObject src, FileSelector sel), 返回一个File对象。有两个类实现这个接口:
[*]DefaultFileReplicator 一个简单的文件复制器和临时文件仓库,同时实现了FileReplicator接口,TemporaryFileStore接口和VfsComponent接口
[*]PriviledgedFileReplicator 一个文件复制器的包装类,接受一个文件复制器作为参数。这个包装类能够执行某些需要权限的动作
TemporaryFileStore接口
这个接口负责管理本地临时文件仓库,只有一个实现类,就是DefaultFileReplicator类。方法只有一个allocateFile(String basename)接受一个字符串,返回一个File对象。这个方法将分配一个临时文件,当这个仓库关闭时,临时文件以及所有子文件被删除。
FileProvider接口
每个FileProvider文件提供器负责处理特殊类型的URI模式,例如Ftp, Http等都有自己的文件提供器
文章来源:http://alartin.javaeye.com/blog/92412
页:
[1]