
dw.cli.commands.PageInfoGetter Maven / Gradle / Ivy
package dw.cli.commands;
import com.martiansoftware.jsap.JSAP;
import com.martiansoftware.jsap.JSAPException;
import com.martiansoftware.jsap.UnflaggedOption;
import dw.cli.Command;
import dw.cli.Output;
import dw.xmlrpc.DokuJClient;
import dw.xmlrpc.PageInfo;
import dw.xmlrpc.exception.DokuException;
public class PageInfoGetter extends Command {
private final boolean _withVersion;
public PageInfoGetter(){
this(false);
}
public PageInfoGetter(boolean withVersion){
_withVersion = withVersion;
}
@Override
protected void registerParameters(JSAP jsap) throws JSAPException {
addPageIdOption(jsap);
if (_withVersion){
jsap.registerParameter(new UnflaggedOption("timestamp").setStringParser(JSAP.INTEGER_PARSER).setRequired(true));
}
}
@Override
protected Output run(DokuJClient dokuClient) throws DokuException {
String pageId = _config.getString("pageId");
PageInfo pageInfo;
if ( _withVersion ){
int timestamp = _config.getInt("timestamp");
pageInfo = dokuClient.getPageInfoVersion(pageId, timestamp);
} else {
pageInfo = dokuClient.getPageInfo(pageId);
}
return new Output(pageInfoToString(pageInfo));
}
private String pageInfoToString(PageInfo pageInfo){
return pageInfo.id()
+ " " + pageInfo.version()
+ " " + pageInfo.author();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy