mirror of
https://github.com/lacerta-doc/Lacerta.git
synced 2024-11-23 00:13:16 +00:00
DocumentProcessor更新 WIP
This commit is contained in:
parent
aa7f285773
commit
eba02abfd4
|
@ -14,12 +14,16 @@ import one.nem.lacerta.processor.DocumentProcessor;
|
||||||
import one.nem.lacerta.model.document.DocumentDetail;
|
import one.nem.lacerta.model.document.DocumentDetail;
|
||||||
|
|
||||||
import one.nem.lacerta.model.document.internal.XmlMetaModel;
|
import one.nem.lacerta.model.document.internal.XmlMetaModel;
|
||||||
|
|
||||||
|
import one.nem.lacerta.model.document.page.Page;
|
||||||
|
|
||||||
import one.nem.lacerta.source.file.FileManager;
|
import one.nem.lacerta.source.file.FileManager;
|
||||||
import one.nem.lacerta.source.file.factory.FileManagerFactory;
|
import one.nem.lacerta.source.file.factory.FileManagerFactory;
|
||||||
|
|
||||||
import one.nem.lacerta.utils.LacertaLogger;
|
import one.nem.lacerta.utils.LacertaLogger;
|
||||||
|
|
||||||
import one.nem.lacerta.utils.XmlMetaParser;
|
import one.nem.lacerta.utils.XmlMetaParser;
|
||||||
|
import one.nem.lacerta.utils.repository.DeviceInfoUtils;
|
||||||
|
|
||||||
|
|
||||||
public class DocumentProcessorImpl implements DocumentProcessor{
|
public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
|
@ -37,8 +41,10 @@ public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
private final FileManagerFactory fileManagerFactory;
|
private final FileManagerFactory fileManagerFactory;
|
||||||
private final LacertaLogger logger;
|
private final LacertaLogger logger;
|
||||||
private final XmlMetaParser xmlMetaParser;
|
private final XmlMetaParser xmlMetaParser;
|
||||||
|
|
||||||
|
private final DeviceInfoUtils deviceInfoUtils;
|
||||||
@AssistedInject
|
@AssistedInject
|
||||||
public DocumentProcessorImpl(FileManagerFactory fileManagerFactory, LacertaLogger logger, XmlMetaParser xmlMetaParser, @Assisted DocumentDetail documentDetail) {
|
public DocumentProcessorImpl(FileManagerFactory fileManagerFactory, LacertaLogger logger, XmlMetaParser xmlMetaParser, DeviceInfoUtils deviceInfoUtils, @Assisted DocumentDetail documentDetail) {
|
||||||
this.fileManagerFactory = fileManagerFactory;
|
this.fileManagerFactory = fileManagerFactory;
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
this.xmlMetaParser = xmlMetaParser;
|
this.xmlMetaParser = xmlMetaParser;
|
||||||
|
@ -46,51 +52,20 @@ public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
throw new IllegalArgumentException("documentDetail must not be null");
|
throw new IllegalArgumentException("documentDetail must not be null");
|
||||||
}
|
}
|
||||||
this.documentDetail = documentDetail;
|
this.documentDetail = documentDetail;
|
||||||
|
this.deviceInfoUtils = deviceInfoUtils;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception{
|
public void init() throws Exception{
|
||||||
logger.debug("init", "called");
|
logger.debug("init", "called");
|
||||||
// Init Variables
|
// Init Variables
|
||||||
this.documentRootPath = this.documentDetail.getPath().getFullPath();
|
this.documentRootPath = deviceInfoUtils.getExternalStorageDirectory().resolve(this.documentDetail.getMeta().getId());
|
||||||
logger.debug("init", "documentRootPath: " + this.documentRootPath);
|
logger.debug("init", "documentRootPath: " + this.documentRootPath);
|
||||||
|
|
||||||
this.fileManager = fileManagerFactory.create(this.documentRootPath).enableAutoCreateParent(); //Initialize FileManager
|
this.fileManager = fileManagerFactory.create(this.documentRootPath).enableAutoCreateParent(); //Initialize FileManager
|
||||||
|
|
||||||
FileManager initFileManager = this.fileManager.getNewInstance();
|
|
||||||
|
|
||||||
logger.debug("init", "fileManager created");
|
logger.debug("init", "fileManager created");
|
||||||
|
|
||||||
// xmlファイルの読み込み
|
|
||||||
if (initFileManager.isExist("meta.xml")) {
|
|
||||||
logger.debug("init", "meta.xml found");
|
|
||||||
try {
|
|
||||||
this.xmlMetaModel = xmlMetaParser.deserialize(this.fileManager.loadXml("meta.xml"));
|
|
||||||
logger.debug("init", "meta.xml parsed");
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.debug("init", "meta.xml parse failed");
|
|
||||||
logger.trace("init", e.getMessage());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
logger.debug("init", "meta.xml not found");
|
|
||||||
xmlMetaModel = new XmlMetaModel();
|
|
||||||
|
|
||||||
xmlMetaModel.setTitle(this.documentDetail.getMeta().getTitle());
|
|
||||||
xmlMetaModel.setAuthor(this.documentDetail.getAuthor());
|
|
||||||
xmlMetaModel.setDescription(""); // FIXME-rca:
|
|
||||||
xmlMetaModel.setDefaultBranch(this.documentDetail.getDefaultBranch());
|
|
||||||
xmlMetaModel.setPages(new ArrayList<>());
|
|
||||||
|
|
||||||
try {
|
|
||||||
initFileManager.createFileIfNotExist("meta.xml").saveXml(xmlMetaParser.serialize(xmlMetaModel), "meta.xml");
|
|
||||||
logger.debug("init", "meta.xml saved");
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("init", "meta.xml save failed");
|
|
||||||
logger.trace("init", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info("init", "finished");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -98,11 +73,12 @@ public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
logger.debug("addNewPageToLast", "called");
|
logger.debug("addNewPageToLast", "called");
|
||||||
String filename = UUID.randomUUID().toString() + ".png"; // TODO-rca: 拡張子を動的にする
|
String filename = UUID.randomUUID().toString() + ".png"; // TODO-rca: 拡張子を動的にする
|
||||||
|
|
||||||
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
Page page = new Page();
|
||||||
|
page.setFileName(filename);
|
||||||
|
page.setBitmap(bitmap);
|
||||||
|
this.documentDetail.getPages().add(page);
|
||||||
|
|
||||||
XmlMetaPageModel xmlMetaPageModel = new XmlMetaPageModel();
|
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
||||||
xmlMetaPageModel.setFilename(filename);
|
|
||||||
xmlMetaModel.getPages().add(xmlMetaPageModel);
|
|
||||||
|
|
||||||
logger.info("addNewPageToLast", "finished");
|
logger.info("addNewPageToLast", "finished");
|
||||||
logger.info("addNewPageToLast", "filename: " + filename);
|
logger.info("addNewPageToLast", "filename: " + filename);
|
||||||
|
@ -124,9 +100,10 @@ public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
|
|
||||||
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
||||||
|
|
||||||
XmlMetaPageModel xmlMetaPageModel = new XmlMetaPageModel();
|
Page page = new Page();
|
||||||
xmlMetaPageModel.setFilename(filename);
|
page.setFileName(filename);
|
||||||
xmlMetaModel.getPages().add(index, xmlMetaPageModel);
|
page.setBitmap(bitmap);
|
||||||
|
this.documentDetail.getPages().add(index + 1, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -136,9 +113,11 @@ public class DocumentProcessorImpl implements DocumentProcessor{
|
||||||
|
|
||||||
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
this.fileManager.getNewInstance().createDirectoryIfNotExist(DEFAULT_SAVE_DIR).resolve(DEFAULT_SAVE_DIR).saveBitmap(bitmap, filename);
|
||||||
|
|
||||||
XmlMetaPageModel xmlMetaPageModel = new XmlMetaPageModel();
|
Page page = new Page();
|
||||||
xmlMetaPageModel.setFilename(filename);
|
page.setFileName(filename);
|
||||||
xmlMetaModel.getPages().add(index - 1, xmlMetaPageModel);
|
page.setBitmap(bitmap);
|
||||||
|
this.documentDetail.getPages().add(index, page);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue
Block a user