package org.lttpp.eemory.client; import org.lttpp.eemory.client.metadata.ENObjectType; import org.lttpp.eemory.client.model.ENNote; import com.evernote.clients.NoteStoreClient; import com.evernote.edam.error.EDAMNotFoundException; import com.evernote.edam.error.EDAMSystemException; import com.evernote.edam.error.EDAMUserException; import com.evernote.edam.type.LinkedNotebook; import com.evernote.thrift.TException; public abstract class NoteOps { private final StoreClientFactory factory; public NoteOps(final StoreClientFactory factory) { this.factory = factory; } public abstract void updateOrCreate(ENNote args) throws Exception; protected NoteStoreClient getNoteStoreClient(final ENNote args) throws EDAMUserException, EDAMSystemException, TException, EDAMNotFoundException { NoteStoreClient client; if (args.getNotebook().getType() == ENObjectType.LINKED) { // args.getNotebook().getLinkedObject() should NOT be null client = factory.getLinkedNoteStoreClient((LinkedNotebook) args.getNotebook().getLinkedObject()); } else { client = factory.getNoteStoreClient(); } return client; } }