mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-14 13:33:08 +00:00
81 lines
2.0 KiB
Java
81 lines
2.0 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.scripts;
|
|
|
|
import org.apache.commons.cli.CommandLine;
|
|
import org.apache.commons.cli.DefaultParser;
|
|
import org.apache.commons.cli.Options;
|
|
import org.apache.commons.cli.ParseException;
|
|
import org.dspace.scripts.handler.DSpaceRunnableHandler;
|
|
import org.springframework.beans.factory.annotation.Required;
|
|
|
|
public abstract class DSpaceRunnable implements Runnable {
|
|
|
|
private String name;
|
|
private String description;
|
|
protected CommandLine commandLine;
|
|
protected Options options;
|
|
protected DSpaceRunnableHandler handler;
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Required
|
|
public void setName(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public String getDescription() {
|
|
return description;
|
|
}
|
|
|
|
@Required
|
|
public void setDescription(String description) {
|
|
this.description = description;
|
|
}
|
|
|
|
public Options getOptions() {
|
|
return options;
|
|
}
|
|
|
|
private void parse(String[] args) throws ParseException {
|
|
commandLine = new DefaultParser().parse(getOptions(), args);
|
|
setup();
|
|
}
|
|
|
|
public void printHelp() {
|
|
handler.printHelp(options, name);
|
|
}
|
|
|
|
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
handler.start();
|
|
internalRun();
|
|
handler.handleCompletion();
|
|
} catch (Exception e) {
|
|
handler.handleException(e);
|
|
}
|
|
}
|
|
|
|
private void setHandler(DSpaceRunnableHandler dSpaceRunnableHandler) {
|
|
this.handler = dSpaceRunnableHandler;
|
|
}
|
|
|
|
public void initialize(String[] args, DSpaceRunnableHandler dSpaceRunnableHandler) throws ParseException {
|
|
this.setHandler(dSpaceRunnableHandler);
|
|
this.parse(args);
|
|
}
|
|
|
|
public abstract void internalRun() throws Exception;
|
|
|
|
public abstract void setup() throws ParseException;
|
|
}
|