ノートの取得

前回は

ユーザ認証を行い、ノートブックの取得についてサンプルコードを交えながら簡単ですが紹介しました。
今回は、ノートの取得について、紹介していきます。

ノートの一覧を取得する

まずは簡単な、ノートの一覧を取得するコードを紹介します。
ここで指すノートの一覧とは、対象のユーザが作成した全てのノートを指します。
そのため、あるノートブック "A" と "B" それぞれに 10 件のノートが存在していた場合、このコードでは、20 件全てのノートを取得することが出来ます。

// UserStore を取得
UserStore.Client userStore = userStoreFactory.create();

// NoteStore を取得
NoteStore.Client noteStore = noteStoreFactory.create(user, userStore);

// ノート一覧を取得する
NoteFilter filter = new NoteFilter();
filter.setOrder(NoteSortOrder.CREATED.getValue());

NoteList notes;
try {
    notes = noteStore.findNotes(user.getDeveloperToken(), filter, 0, 1000);
} catch (EDAMUserException | EDAMSystemException
        | EDAMNotFoundException | TException e) {
    throw new EvernoteException(e);
}
return notes.getNotes();

このように、全件取得するからといって、(例えば findAll のような)便利な API は公開されておらず、基本的に NoteFilter というクラスを使って、ノートを検索することになります。
そして、今回の例でいえば、NoteFilter にソート順(作成日の昇順)しか指定していないので、ユーザが持つノート全てを取得する、ということになります。

デフォルトノートブックに含まれるノートの一覧を取得する

次に、デフォルトノートブックに含まれているノートの一覧だけを取得する場合のコードを見てみましょう。

// UserStore を取得
UserStore.Client userStore = userStoreFactory.create();

// NoteStore を取得
NoteStore.Client noteStore = noteStoreFactory.create(user, userStore);

// デフォルトノートブックを取得
Notebook notebook;
try {
    notebook = noteStore.getDefaultNotebook(user.getDeveloperToken());
} catch (EDAMUserException | EDAMSystemException | TException e) {
    throw new EvernoteException(e);
}

// ノート一覧を取得する
NoteFilter filter = new NoteFilter();
filter.setNotebookGuid(notebook.getGuid());
filter.setOrder(NoteSortOrder.CREATED.getValue());

NoteList notes;
try {
    notes = noteStore.findNotes(user.getDeveloperToken(), filter, 0, 1000);
} catch (EDAMUserException | EDAMSystemException
        | EDAMNotFoundException | TException e) {
    throw new EvernoteException(e);
}
return notes.getNotes();

このように、違いは NoteFilter に対象となるノートブックの GUID を指定しているだけ。
もし、別のノートブックのノート一覧を取得したい場合、そのノートブックの GUID さえ指定すれば取得できます。
ね?簡単でしょ?
え?そりゃそうだろ?失礼しました。

今日は終わり

今回は簡単なノートの全件取得だけです。次回以降に、もう少し凝った検索についてご紹介したいと思います。

ちなみに

今回紹介したコードも懲りずに GitHub に晒していますので、参考になれば幸いです。
ご指摘等あればコメントいただけると助かります。
GitHub: ノート一覧の取得と、そのテスト