LacertaLibraryのスタブを廃止

This commit is contained in:
r-ca 2024-01-20 23:00:21 +09:00
parent 5c17f96d3d
commit 9aea4bb90e
No known key found for this signature in database
GPG Key ID: 6A72911AC73464A9
2 changed files with 221 additions and 221 deletions

View File

@ -1,219 +1,219 @@
package one.nem.lacerta.data.impl; //package one.nem.lacerta.data.impl;
//
import one.nem.lacerta.data.LacertaLibrary; //import one.nem.lacerta.data.LacertaLibrary;
import one.nem.lacerta.model.LibraryItemPage; //import one.nem.lacerta.model.LibraryItemPage;
import one.nem.lacerta.model.ListItem; //import one.nem.lacerta.model.ListItem;
import one.nem.lacerta.model.ListItemType; //import one.nem.lacerta.model.ListItemType;
import one.nem.lacerta.model.document.DocumentDetail; //import one.nem.lacerta.model.document.DocumentDetail;
//
import one.nem.lacerta.model.document.DocumentMeta; //import one.nem.lacerta.model.document.DocumentMeta;
import one.nem.lacerta.model.document.path.DocumentPath; //import one.nem.lacerta.model.document.path.DocumentPath;
import one.nem.lacerta.utils.LacertaLogger; //import one.nem.lacerta.utils.LacertaLogger;
//
import com.github.javafaker.DateAndTime; //import com.github.javafaker.DateAndTime;
import com.github.javafaker.Faker; //import com.github.javafaker.Faker;
//
import java.text.DateFormat; //import java.text.DateFormat;
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.Objects; //import java.util.Objects;
import java.util.UUID; //import java.util.UUID;
//
import javax.inject.Inject; //import javax.inject.Inject;
//
/** ///**
* LacertaLibraryのスタブ実装 // * LacertaLibraryのスタブ実装
*/ // */
public class LacertaLibraryStubImpl implements LacertaLibrary { //public class LacertaLibraryStubImpl implements LacertaLibrary {
//
LacertaLogger logger; // LacertaLogger logger;
//
Faker faker; // Faker faker;
//
@Inject // @Inject
public LacertaLibraryStubImpl(LacertaLogger logger) { // public LacertaLibraryStubImpl(LacertaLogger logger) {
faker = new Faker(); // Init Faker // faker = new Faker(); // Init Faker
this.logger = logger; // this.logger = logger;
logger.debug("LibraryStub", "Initialized"); // logger.debug("LibraryStub", "Initialized");
} // }
//
// Internal Methods // // Internal Methods
//
// Generate Stub Data // // Generate Stub Data
private LibraryItemPage generateStubLibraryItemPage(int limit, String pageId) { // private LibraryItemPage generateStubLibraryItemPage(int limit, String pageId) {
logger.debug("LibraryStub", "generateStubLibraryItemPage"); // logger.debug("LibraryStub", "generateStubLibraryItemPage");
ArrayList<ListItem> listItems = new ArrayList<>(); // ArrayList<ListItem> listItems = new ArrayList<>();
int itemTotal = faker.number().numberBetween(1, limit); // 実際に返却するアイテム数を決定 // int itemTotal = faker.number().numberBetween(1, limit); // 実際に返却するアイテム数を決定
int folderTotal; // int folderTotal;
// フォルダ数の抽選 // // フォルダ数の抽選
if (itemTotal > 4) { // if (itemTotal > 4) {
folderTotal = faker.number().numberBetween(1, itemTotal - 2); // folderTotal = faker.number().numberBetween(1, itemTotal - 2);
} // }
else { // else {
if (itemTotal > 2) { // if (itemTotal > 2) {
folderTotal = 1; // folderTotal = 1;
} // }
else { // ドキュメント数がゼロにならないように // else { // ドキュメント数がゼロにならないように
folderTotal = 0; // folderTotal = 0;
} // }
} // }
int documentTotal = itemTotal - folderTotal; // ドキュメント数を決定 // int documentTotal = itemTotal - folderTotal; // ドキュメント数を決定
logger.debug("LibraryStub", "itemTotal: " + itemTotal); // logger.debug("LibraryStub", "itemTotal: " + itemTotal);
logger.debug("LibraryStub", "folderTotal: " + folderTotal); // logger.debug("LibraryStub", "folderTotal: " + folderTotal);
logger.debug("LibraryStub", "documentTotal: " + documentTotal); // logger.debug("LibraryStub", "documentTotal: " + documentTotal);
//
// フォルダを生成 // // フォルダを生成
for (int i = 0; i < folderTotal; i++) { // for (int i = 0; i < folderTotal; i++) {
listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_FOLDER)); // listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_FOLDER));
} // }
// ドキュメントを生成 // // ドキュメントを生成
for (int i = 0; i < documentTotal; i++) { // for (int i = 0; i < documentTotal; i++) {
listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_DOCUMENT)); // listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_DOCUMENT));
} // }
//
LibraryItemPage libraryItemPage = new LibraryItemPage(); // LibraryItemPage libraryItemPage = new LibraryItemPage();
libraryItemPage.setListItems(listItems); // libraryItemPage.setListItems(listItems);
if (pageId == null) { // if (pageId == null) {
libraryItemPage.setPageId(UUID.randomUUID().toString()); // libraryItemPage.setPageId(UUID.randomUUID().toString());
} else { // } else {
libraryItemPage.setPageId(pageId); // libraryItemPage.setPageId(pageId);
} // }
libraryItemPage.setPageTitle("FakePage" + faker.number().digits(3)); // libraryItemPage.setPageTitle("FakePage" + faker.number().digits(3));
//
return libraryItemPage; // return libraryItemPage;
} // }
//
private ListItem generateStubListItem(ListItemType itemType) { // private ListItem generateStubListItem(ListItemType itemType) {
if (itemType == ListItemType.ITEM_TYPE_FOLDER) { // if (itemType == ListItemType.ITEM_TYPE_FOLDER) {
ListItem listItem = new ListItem(); // ListItem listItem = new ListItem();
listItem.setTitle("FakeFolder" + faker.number().digits(3)); // listItem.setTitle("FakeFolder" + faker.number().digits(3));
listItem.setDescription("Updated at " + DateFormat.getDateTimeInstance().format(faker.date().birthday())); // listItem.setDescription("Updated at " + DateFormat.getDateTimeInstance().format(faker.date().birthday()));
listItem.setItemType(ListItemType.ITEM_TYPE_FOLDER); // listItem.setItemType(ListItemType.ITEM_TYPE_FOLDER);
listItem.setItemId(UUID.randomUUID().toString()); // listItem.setItemId(UUID.randomUUID().toString());
return listItem; // return listItem;
} else if (itemType == ListItemType.ITEM_TYPE_DOCUMENT) { // } else if (itemType == ListItemType.ITEM_TYPE_DOCUMENT) {
ListItem listItem = new ListItem(); // ListItem listItem = new ListItem();
listItem.setTitle("FakeDocument" + faker.book().title()); // listItem.setTitle("FakeDocument" + faker.book().title());
listItem.setDescription("Updated at " + DateFormat.getDateTimeInstance().format(faker.date().birthday())); // listItem.setDescription("Updated at " + DateFormat.getDateTimeInstance().format(faker.date().birthday()));
listItem.setItemType(ListItemType.ITEM_TYPE_DOCUMENT); // listItem.setItemType(ListItemType.ITEM_TYPE_DOCUMENT);
listItem.setItemId(UUID.randomUUID().toString()); // listItem.setItemId(UUID.randomUUID().toString());
return listItem; // return listItem;
} else { // } else {
return null; // return null;
} // }
} // }
//
private LibraryItemPage getRecentDocumentPage(int limit) { // private LibraryItemPage getRecentDocumentPage(int limit) {
int itemTotal = faker.number().numberBetween(1, limit); // int itemTotal = faker.number().numberBetween(1, limit);
ArrayList<ListItem> listItems = new ArrayList<>(); // ArrayList<ListItem> listItems = new ArrayList<>();
for (int i = 0; i < itemTotal; i++) { // for (int i = 0; i < itemTotal; i++) {
listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_DOCUMENT)); // listItems.add(generateStubListItem(ListItemType.ITEM_TYPE_DOCUMENT));
} // }
// DescriptionからDateを抽出して新しい順にソート // // DescriptionからDateを抽出して新しい順にソート
listItems.sort((a, b) -> { // listItems.sort((a, b) -> {
String aDate = a.getDescription().substring(11); // String aDate = a.getDescription().substring(11);
String bDate = b.getDescription().substring(11); // String bDate = b.getDescription().substring(11);
return bDate.compareTo(aDate); // return bDate.compareTo(aDate);
}); // });
LibraryItemPage libraryItemPage = new LibraryItemPage(); // LibraryItemPage libraryItemPage = new LibraryItemPage();
libraryItemPage.setListItems(listItems); // libraryItemPage.setListItems(listItems);
libraryItemPage.setPageId(UUID.randomUUID().toString()); // libraryItemPage.setPageId(UUID.randomUUID().toString());
libraryItemPage.setPageTitle("RecentDocument"); // libraryItemPage.setPageTitle("RecentDocument");
return libraryItemPage; // return libraryItemPage;
} // }
//
private DocumentDetail generateStubDocumentDetail(String id) throws IllegalArgumentException { // private DocumentDetail generateStubDocumentDetail(String id) throws IllegalArgumentException {
//
if (Objects.isNull(id)) { // if (Objects.isNull(id)) {
throw new IllegalArgumentException("id is null"); // throw new IllegalArgumentException("id is null");
} // }
//
DocumentMeta documentMeta = new DocumentMeta(); // DocumentMeta documentMeta = new DocumentMeta();
documentMeta.setId(id); // documentMeta.setId(id);
documentMeta.setTitle("FakeDocument" + faker.book().title()); // documentMeta.setTitle("FakeDocument" + faker.book().title());
documentMeta.setCreatedAt(faker.date().birthday()); // documentMeta.setCreatedAt(faker.date().birthday());
documentMeta.setUpdatedAt(faker.date().birthday()); // TODO-rca: 更新日のほうが古くなることがあるのでなんとかする // documentMeta.setUpdatedAt(faker.date().birthday()); // TODO-rca: 更新日のほうが古くなることがあるのでなんとかする
ArrayList<String> tagIds = new ArrayList<>(); // ArrayList<String> tagIds = new ArrayList<>();
//
DocumentDetail documentDetail = new DocumentDetail(); // DocumentDetail documentDetail = new DocumentDetail();
documentDetail.setMeta(documentMeta); // documentDetail.setMeta(documentMeta);
// documentDetail.setPath(null); // TODO-rca: なんとかする //// documentDetail.setPath(null); // TODO-rca: なんとかする
// documentDetail.setAuthor(faker.name().fullName()); //// documentDetail.setAuthor(faker.name().fullName());
// documentDetail.setRepository(null); // TODO-rca: なんとかする //// documentDetail.setRepository(null); // TODO-rca: なんとかする
return documentDetail; // return documentDetail;
} // }
//
/** // /**
* 履歴ページを取得する // * 履歴ページを取得する
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public ArrayList<ListItem> getRecentDocument(int limit) { // public ArrayList<ListItem> getRecentDocument(int limit) {
return getRecentDocumentPage(limit).getListItems(); // return getRecentDocumentPage(limit).getListItems();
} // }
//
/** // /**
* 履歴ページを取得する // * 履歴ページを取得する
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @param offset 取得するアイテムのオフセット // * @param offset 取得するアイテムのオフセット
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public ArrayList<ListItem> getRecentDocument(int limit, int offset) { // public ArrayList<ListItem> getRecentDocument(int limit, int offset) {
return getRecentDocumentPage(limit).getListItems(); // return getRecentDocumentPage(limit).getListItems();
} // }
//
/** // /**
* ライブラリページを取得する // * ライブラリページを取得する
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public LibraryItemPage getLibraryPage(int limit) { // public LibraryItemPage getLibraryPage(int limit) {
return generateStubLibraryItemPage(limit, null); // return generateStubLibraryItemPage(limit, null);
} // }
//
/** // /**
* ライブラリページを取得する // * ライブラリページを取得する
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @param offset 取得するアイテムのオフセット // * @param offset 取得するアイテムのオフセット
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public LibraryItemPage getLibraryPage(int limit, int offset) { // public LibraryItemPage getLibraryPage(int limit, int offset) {
return generateStubLibraryItemPage(limit, null); // return generateStubLibraryItemPage(limit, null);
} // }
//
/** // /**
* ライブラリページを取得する // * ライブラリページを取得する
* @param pageId ページID // * @param pageId ページID
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public LibraryItemPage getLibraryPage(String pageId, int limit) { // public LibraryItemPage getLibraryPage(String pageId, int limit) {
return generateStubLibraryItemPage(limit, pageId); // return generateStubLibraryItemPage(limit, pageId);
} // }
//
/** // /**
* ライブラリページを取得する // * ライブラリページを取得する
* @param pageId ページID // * @param pageId ページID
* @param limit 取得するアイテム数 // * @param limit 取得するアイテム数
* @param offset 取得するアイテムのオフセット // * @param offset 取得するアイテムのオフセット
* @return ページオブジェクト // * @return ページオブジェクト
*/ // */
@Override // @Override
public LibraryItemPage getLibraryPage(String pageId, int limit, int offset) { // public LibraryItemPage getLibraryPage(String pageId, int limit, int offset) {
return generateStubLibraryItemPage(limit, pageId); // return generateStubLibraryItemPage(limit, pageId);
} // }
//
/** // /**
* ドキュメント詳細を取得する // * ドキュメント詳細を取得する
* @param id ドキュメントID // * @param id ドキュメントID
* @return ドキュメント詳細オブジェクト // * @return ドキュメント詳細オブジェクト
*/ // */
@Override // @Override
public DocumentDetail getDocumentDetailById(String id) throws IllegalArgumentException { // public DocumentDetail getDocumentDetailById(String id) throws IllegalArgumentException {
return generateStubDocumentDetail(id); // return generateStubDocumentDetail(id);
} // }
} //}

View File

@ -7,7 +7,7 @@ import dagger.hilt.android.components.FragmentComponent;
import dagger.hilt.migration.DisableInstallInCheck; import dagger.hilt.migration.DisableInstallInCheck;
import one.nem.lacerta.data.LacertaLibrary; import one.nem.lacerta.data.LacertaLibrary;
import one.nem.lacerta.data.impl.LacertaLibraryStubImpl; import one.nem.lacerta.data.impl.LacertaLibraryImpl;
import one.nem.lacerta.utils.LacertaLogger; import one.nem.lacerta.utils.LacertaLogger;
@Module @Module
@ -16,6 +16,6 @@ import one.nem.lacerta.utils.LacertaLogger;
abstract public class LacertaLibraryModule { abstract public class LacertaLibraryModule {
@Binds @Binds
public abstract LacertaLibrary bindLacertaLibrary(LacertaLibraryStubImpl impl); public abstract LacertaLibrary bindLacertaLibrary(LacertaLibraryImpl impl);
} }