ザネリは列車を見送った

ブログという名の備忘録

Dropbox Java API で過去リビジョンのファイルを取得

以前書いたDropbox Java API で遊ぶにリンクを張っていただいている記事があった。

なんと…その通りDropboxAPI#getFile(), DropboxAPI#getFileStream() の引数 rev は内部で使用されておらず、
リビジョンを指定して過去のファイルをダウンロードできないようだ。
どうにしかして今の SDK でもリビジョンを指定してダウンロードできるようワークアラウンドコードを書けないものか。
Dropbox - REST API Reference /files (GET)を見てみたところ、rev パラメータに渡してやれば良いようだ。
リフレクションで何やかんや強引にやればできなくもないかな…と DropboxAPI クラスを眺めていたところ、
getFileStream() メソッドは public だし、中で使われているメソッドや変数も public か protected なので
わりと素直に実装できるかも。
ということで、getFileStream() だけオーバーライドさせた DropboxAPI クラスのサブクラスを作り実現してみた。
DropboxAPI の代わりに上記クラスを使用して過去のファイルをダウンロード出来ることを確認。
しかし、やってみて思ったけど、DropboxAPI クラスはサブクラスに継承させることを前提に作られているような気がするなあ。