...
Aby przechwycić przetwarzany przez DirectoryMonitor dokument dodawany przez systemowe API do archiwum, należy dodać znacznik directory-monitor w deskryptorze wtyczki - plik suncode-plugin.xml.
W całym systemie może zostać zarejestrowana tylko jedna klasa przechwytująca dokumenty przez DirectoryMonitor. Próby zarejestrowania większej ilości będą zignorowane.
Przykładowy wpis w deskryptorze wtyczki:
...
- document-upload-listener (opcjonalny) - nazwa klasy implementującej interfejs DocumentUploadListener. Umożliwia obsługę reagowania na zdarzenie, gdy przetwarzany przez DirectoryMonitor dokument dodawany jest przez systemowe API do archiwum.
Przykładowa klasa dokonująca modyfikacji indeksów na modyfikowanym dokumencie:
Code Block | ||
---|---|---|
| ||
@Slf4j
public class ChangeIndexesOnUploadFileListenerImpl implements DocumentUploadListener {
@Override
public void onDocumentUpload(DocumentDefinition definition) {
Map<Long,Object> indexes = definition.getIndexes();
Map<Long,Object> newIndexes = new HashMap<>();
indexes.forEach(
(id, value) -> {
if (value instanceof String) {
newIndexes.put(id, "zmieniony indeks");
}
}
);
definition.setIndexes(newIndexes);
}
} |