mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
91 lines
3.5 KiB
Java
91 lines
3.5 KiB
Java
/**
|
|
* The contents of this file are subject to the license and copyright
|
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
|
* tree and available online at
|
|
*
|
|
* http://www.dspace.org/license/
|
|
*/
|
|
|
|
package org.dspace.discovery;
|
|
|
|
import org.apache.commons.cli.CommandLine;
|
|
import org.apache.commons.cli.Options;
|
|
|
|
/**
|
|
* This Enum holds all the possible options and combinations for the Index discovery script
|
|
*/
|
|
public enum IndexClientOptions {
|
|
REMOVE,
|
|
CLEAN,
|
|
DELETE,
|
|
BUILD,
|
|
BUILDANDSPELLCHECK,
|
|
OPTIMIZE,
|
|
SPELLCHECK,
|
|
INDEX,
|
|
UPDATE,
|
|
FORCEUPDATE,
|
|
UPDATEANDSPELLCHECK,
|
|
FORCEUPDATEANDSPELLCHECK,
|
|
HELP;
|
|
|
|
/**
|
|
* This method resolves the CommandLine parameters to figure out which action the index-discovery script should
|
|
* perform
|
|
* @param commandLine The relevant CommandLine for the index-discovery script
|
|
* @return The index-discovery option to be ran, parsed from the CommandLine
|
|
*/
|
|
protected static IndexClientOptions getIndexClientOption(CommandLine commandLine) {
|
|
if (commandLine.hasOption("h")) {
|
|
return IndexClientOptions.HELP;
|
|
} else if (commandLine.hasOption("r")) {
|
|
return IndexClientOptions.REMOVE;
|
|
} else if (commandLine.hasOption("c")) {
|
|
return IndexClientOptions.CLEAN;
|
|
} else if (commandLine.hasOption("d")) {
|
|
return IndexClientOptions.DELETE;
|
|
} else if (commandLine.hasOption("b")) {
|
|
if (commandLine.hasOption("s")) {
|
|
return IndexClientOptions.BUILDANDSPELLCHECK;
|
|
} else {
|
|
return IndexClientOptions.BUILD;
|
|
}
|
|
} else if (commandLine.hasOption("o")) {
|
|
return IndexClientOptions.OPTIMIZE;
|
|
} else if (commandLine.hasOption("s")) {
|
|
return IndexClientOptions.SPELLCHECK;
|
|
} else if (commandLine.hasOption("i")) {
|
|
return IndexClientOptions.INDEX;
|
|
} else {
|
|
if (commandLine.hasOption("f") && commandLine.hasOption("s")) {
|
|
return IndexClientOptions.FORCEUPDATEANDSPELLCHECK;
|
|
} else if (commandLine.hasOption("f")) {
|
|
return IndexClientOptions.FORCEUPDATE;
|
|
} else if (commandLine.hasOption("s")) {
|
|
return IndexClientOptions.UPDATEANDSPELLCHECK;
|
|
} else {
|
|
return IndexClientOptions.UPDATE;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected static Options constructOptions() {
|
|
Options options = new Options();
|
|
|
|
options
|
|
.addOption("r", "remove", true, "remove an Item, Collection or Community from index based on its handle");
|
|
options.addOption("i", "index", true,
|
|
"add or update an Item, Collection or Community based on its handle or uuid");
|
|
options.addOption("c", "clean", false,
|
|
"clean existing index removing any documents that no longer exist in the db");
|
|
options.addOption("d", "delete", false,
|
|
"delete all records from existing index");
|
|
options.addOption("b", "build", false, "(re)build index, wiping out current one if it exists");
|
|
options.addOption("s", "spellchecker", false, "Rebuild the spellchecker, can be combined with -b and -f.");
|
|
options.addOption("f", "force", false,
|
|
"if updating existing index, force each handle to be reindexed even if uptodate");
|
|
options.addOption("h", "help", false, "print this help message");
|
|
return options;
|
|
}
|
|
}
|