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