ノートの取得
前回は
ユーザ認証を行い、ノートブックの取得についてサンプルコードを交えながら簡単ですが紹介しました。
今回は、ノートの取得について、紹介していきます。
ノートの一覧を取得する
まずは簡単な、ノートの一覧を取得するコードを紹介します。
ここで指すノートの一覧とは、対象のユーザが作成した全てのノートを指します。
そのため、あるノートブック "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 さえ指定すれば取得できます。
ね?簡単でしょ?
え?そりゃそうだろ?失礼しました。
今日は終わり
今回は簡単なノートの全件取得だけです。次回以降に、もう少し凝った検索についてご紹介したいと思います。