`
alartin
  • 浏览: 207899 次
社区版块
存档分类
最新评论

Apache VFS(6): 几个重要的概念性接口

    博客分类:
  • VFS
阅读更多
理解Apache VFS的概念性接口很重要,因为Apache VFS例子太少,如果不仔细研究的话,根本农不清楚:

VfsComponent接口
这个接口号称是用来管理所有VFS组件的生命周期的。方法比较简单:
  1. init 用来初始化组件
  2. close 用来关闭组件
  3. setContext(VfsComponentContext ctx) 设置组件上下文,注意它维护了一个组件上下文:VfsComponentContext
  4. setLogger 设置日志
有一个抽象类实现了这个接口AbstractVfsComponent抽象类,这个抽象类加了一个方法getContext()来获得组件上下文。AbstractVfsComponent抽象类很重要,有几个重要的类继承它:
  1. AbstractFilesCache
  2. AbstractFileSystem
  3. AbstractVfsContainer
  4. DefaultFileReplicator
VfsComponentContext接口
这个接口允许VFS组件访问他们需要的服务,例如
FileReplicator接口
这个接口的任务是创建文件的本地复制品。只有一个方法replicateFile(FileObject src, FileSelector sel), 返回一个File对象。有两个类实现这个接口:
  1. DefaultFileReplicator 一个简单的文件复制器和临时文件仓库,同时实现了FileReplicator接口,TemporaryFileStore接口和VfsComponent接口
  2. PriviledgedFileReplicator 一个文件复制器的包装类,接受一个文件复制器作为参数。这个包装类能够执行某些需要权限的动作
TemporaryFileStore接口
这个接口负责管理本地临时文件仓库,只有一个实现类,就是DefaultFileReplicator类。方法只有一个allocateFile(String basename) 接受一个字符串,返回一个File对象。这个方法将分配一个临时文件,当这个仓库关闭时,临时文件以及所有子文件被删除。

FileProvider接口
每个FileProvider文件提供器负责处理特殊类型的URI模式,例如Ftp, Http等都有自己的文件提供器
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics